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

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

▶ グーグル インコーポレイテッドの特許一覧

<>
  • 特許-画像選択提案 図1
  • 特許-画像選択提案 図2
  • 特許-画像選択提案 図3
  • 特許-画像選択提案 図4
  • 特許-画像選択提案 図5A
  • 特許-画像選択提案 図5B
  • 特許-画像選択提案 図5C
  • 特許-画像選択提案 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-22
(45)【発行日】2025-01-30
(54)【発明の名称】画像選択提案
(51)【国際特許分類】
   G06T 1/00 20060101AFI20250123BHJP
   G06F 16/583 20190101ALI20250123BHJP
   G06F 3/04842 20220101ALI20250123BHJP
【FI】
G06T1/00 200E
G06F16/583
G06F3/04842
【請求項の数】 16
【外国語出願】
(21)【出願番号】P 2022163336
(22)【出願日】2022-10-11
(62)【分割の表示】P 2020528152の分割
【原出願日】2018-12-21
(65)【公開番号】P2023011633
(43)【公開日】2023-01-24
【審査請求日】2022-10-21
(31)【優先権主張番号】62/609,543
(32)【優先日】2017-12-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ウィン,ジュリア
(72)【発明者】
【氏名】ノビコフ,ティモシー
(72)【発明者】
【氏名】アニョルガ,フアン・カルロス
【審査官】▲高▼橋 真之
(56)【参考文献】
【文献】特開2011-138263(JP,A)
【文献】特開2012-079337(JP,A)
【文献】特開2007-188404(JP,A)
【文献】特開2010-146201(JP,A)
【文献】特開2015-069277(JP,A)
【文献】国際公開第2015/049732(WO,A1)
【文献】国際公開第2010/013424(WO,A1)
【文献】特開2016-189522(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00
G06F 16/54
G06F 16/583
G06F 3/04842
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって実行される方法であって、
画像ライブラリ内の1つまたは複数の第1の画像の選択を示す第1のユーザ入力を受信することと、
前記1つまたは複数の第1の画像の1つまたは複数の第1の画像特性を決定することと、
前記画像ライブラリ内の1つまたは複数の第2の画像を識別することとを備え、前記1つまたは複数の第2の画像の各々は、前記1つまたは複数の第1の画像特性のうちの少なくとも1つに一致する少なくとも1つの第2の画像特性に関連付けられ、
前記方法は、ユーザインターフェイスを表示させることをさらに備え、前記ユーザインターフェイスは、前記1つまたは複数の第2の画像を含み、前記ユーザインターフェイスは、前記1つまたは複数の第2の画像の選択を可能にし、
前記方法は、
前記1つまたは複数の第2の画像のうちの少なくとも1つの第2の画像の選択を示す第2のユーザ入力を受信することと、
前記1つまたは複数の第1の画像および前記少なくとも1つの第2の画像に基づいて、前記1つまたは複数の第1の画像および前記少なくとも1つの第2の画像に関連付けられた、提案されたアクションを決定し、対応する提案されたアクション要素を前記ユーザインターフェイスに表示させることと、
前記対応する提案されたアクション要素のユーザ選択に応答して、前記1つまたは複数の第1の画像および前記少なくとも1つの第2の画像に対して前記提案されたアクションを実行することとをさらに備える、方法。
【請求項2】
前記提案されたアクションは、前記1つまたは複数の第1の画像特性および前記少なくとも1つの第2の画像特性を有する前記画像ライブラリの1つまたは複数の追加の画像に対して追加的に実行される、請求項1に記載の方法。
【請求項3】
前記提案されたアクションは、前記1つまたは複数の第1の画像および前記少なくとも1つの第2の画像の1つまたは複数の特定の画像特性に以前に関連付けられている、請求項1および2のいずれか1項に記載の方法。
【請求項4】
前記対応する提案されたアクション要素の前記ユーザ選択を受信することと、
前記ユーザ選択の受信に応答して、前記対応する提案されたアクション要素に関連付けられた前記提案されたアクションを実行することとをさらに備え、前記提案されたアクションは、前記1つまたは複数の第1の画像および前記少なくとも1つの第2の画像を削除すること、または、前記1つまたは複数の第1の画像および前記少なくとも1つの第2の画像を自動的に強調することを行なうことの1つまたは複数を含む、請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記提案されたアクションは、前記1つまたは複数の第1の画像および前記1つまたは複数の第2の画像のうちの少なくとも1つをアーカイブすること、または、前記1つまたは複数の第1の画像および前記1つまたは複数の第2の画像のうちの前記少なくとも1つを含む、画像ベースの創作物を生成することの1つまたは複数をさらに含む、請求項4に記載の方法。
【請求項6】
前記画像ライブラリ内の1つまたは複数の第3の画像を識別することをさらに備え、前記1つまたは複数の第3の画像の各々は、前記1つまたは複数の第1の画像特性のうちの少なくとも1つおよび前記少なくとも1つの第2の画像特性に一致する少なくとも1つの第3の画像特性に関連付けられ、
前記方法は、更新されたユーザインターフェイスを表示させることをさらに備え、前記更新されたユーザインターフェイスは、前記1つまたは複数の第3の画像を含み、前記更新されたユーザインターフェイスは、前記1つまたは複数の第3の画像の選択を可能にする、請求項1~のいずれか1項に記載の方法。
【請求項7】
前記1つまたは複数の第1の画像特性を決定することは、前記1つまたは複数の第1の画像のうちの少なくとも1つが不鮮明であると判断することを含み、前記1つまたは複数の第2の画像を識別することは、不鮮明度に基づいて前記1つまたは複数の第2の画像の各々を識別することを含む、請求項1~のいずれか1項に記載の方法。
【請求項8】
画像選択のコンテキストを決定することをさらに備え、前記1つまたは複数の第2の画像を識別することは、画像選択の前記コンテキストに基づいており、画像選択の前記コンテキストは、画像ベースの創作物の生成であり、前記画像ベースの創作物は、画像アルバム、画像コラージュ、ビデオ、または印刷された出版物のうちの少なくとも1つを含む、請求項1~のいずれか1項に記載の方法。
【請求項9】
画像選択のコンテキストを決定することをさらに備え、前記1つまたは複数の第2の画像を識別することは、画像選択の前記コンテキストに基づいており、画像選択の前記コンテキストは、画像共有アプリケーション、金融アプリケーション、またはメッセージングアプリケーションのうちの1つまたは複数を含む特定のアプリケーションタイプのターゲットソフトウェアアプリケーションに画像を提供することである、請求項1~のいずれか1項に記載の方法。
【請求項10】
前記1つまたは複数の第2の画像は、複数の第2の画像であり、前記ユーザインターフェイスに表示させることは、前記複数の第2の画像の第1のグループを前記ユーザインターフェイスの第1の部分に表示させ、前記複数の第2の画像の第2のグループを前記ユーザインターフェイスの第2の部分に表示させることを含み、前記第1のグループは、前記第2のグループよりも、前記1つまたは複数の第1の画像との一致の高い程度を有する、請求項1~のいずれか1項に記載の方法。
【請求項11】
前記第1のグループは、前記1つまたは複数の第1の画像の画像特徴特性および位置特性の両方と一致する特性を有する前記第2の画像の1つまたは複数を含み、前記第2のグループは、前記1つまたは複数の第1の画像の前記画像特徴特性または前記位置特性の一方のみと一致する特性を有する前記第2の画像の1つまたは複数を含む、請求項10に記載の方法。
【請求項12】
前記1つまたは複数の第1の画像特性を決定することは、前記1つまたは複数の第1の画像のうちの少なくとも1つに関連付けられた位置を決定することを含み、前記1つまたは複数の第2の画像を識別することは、前記1つまたは複数の第1の画像のうちの前記少なくとも1つに関連付けられた前記位置の閾値距離内にあるそれぞれの位置に関連付けられた画像を前記画像ライブラリから選択することを含む、請求項1~11のいずれか1項に記載の方法。
【請求項13】
画像アルバムを生成することをさらに備え、前記画像アルバムは、前記1つまたは複数の第1の画像および前記少なくとも1つの第2の画像を含む、請求項1~12のいずれか1項に記載の方法。
【請求項14】
画像コラージュを生成することをさらに備え、前記画像コラージュは、前記1つまたは複数の第1の画像および前記少なくとも1つの第2の画像を含む、請求項1~12のいずれか1項に記載の方法。
【請求項15】
請求項1~14のいずれか1項に記載の方法を1つまたは複数のプロセッサに実行させるためのプログラム。
【請求項16】
請求項15に記載のプログラムを格納したメモリと、
前記プログラムを実行するための1つまたは複数のプロセッサとを備える、システム。
【発明の詳細な説明】
【背景技術】
【0001】
関連出願の参照
本出願は、(2017年12月22日に出願され、「画像選択の提案」と題された)米国特許仮出願62/609,543に対する優先権を主張し、その全体が参照により本明
細書に組み込まれる。
【0002】
背景
デジタルカメラ装置の人気および利便性は、デジタル写真およびビデオのような視覚的コンテンツをユビキタスにしてきた。例えば、様々な種類の多数の画像は、ユーザデバイスによってキャプチャされ、記憶され、表示されることができる。いくつかのデバイスは、ユーザの画像または他のコンテンツが、コレクション内のコンテンツアイテムを含むレイアウトで表示されることを可能にする。通常、コンテンツアイテムのビューは画面に表示され、ユーザは、コンテンツアイテムのコレクションの異なる部分がビュー内に表示されるようにコンテンツアイテムをスクロールさせることができる。ユーザはまた、他のユーザとの共有、ピクチャコラージュやフォトブックの生成など、様々な目的のために1つまたは複数のコンテンツアイテムを選択し得る。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本明細書において提供される背景技術の説明は、本開示の文脈を概して提示することを目的としている。現在表示されている発明者らの研究は、この背景技術の項で説明される限り、さもなければ出願時に従来技術としての資格がないかもしれない説明の局面と同様に、本開示に対する従来技術として明示的にも暗黙的にも認めるものではない。
【課題を解決するための手段】
【0004】
概要
本出願の実施の形態は、画像選択提案に関する。ある実施の形態では、コンピュータで実施される方法は、画像ライブラリ内の1つまたは複数の第1の画像の選択を示す第1のユーザ入力を受信することと、1つまたは複数の第1の画像の1つまたは複数の第1の画像特性を決定することと、画像ライブラリ内の1つまたは複数の第2の画像を識別することとを含み、当該1つまたは複数の第2の画像の各々は、1つまたは複数の第1の画像特性のうちの少なくとも1つに一致する少なくとも1つの第2の画像特性に関連付けられており、、ユーザインターフェイスを表示させることを含み、ユーザインターフェイスは、1つまたは複数の第2の画像を含み、ユーザインターフェイスは、1つまたは複数の第2の画像の選択を可能にする。
【0005】
これらおよび他の実施の形態は、それぞれ、以下の特徴のうちの1つまたは複数を任意選択で含み得る:1つまたは複数の第2の画像のうちの少なくとも1つの選択を示す第2のユーザ入力を受信すること、第2のユーザ入力の受信に応答して、1つまたは複数の第2の画像のうちの少なくとも1つの1つまたは複数の第2の画像特性を決定すること、画像ライブラリ内の1つまたは複数の第3の画像を識別することとを含み、1つまたは複数の第3の画像の各々は、1つまたは複数の第1の画像特性のうちの少なくとも1つおよび1つまたは複数の第2の画像特性のうちの少なくとも1つに一致する少なくとも1つの第3の画像特性に関連付けられており、更新されたユーザインターフェイスを表示させることを含み、更新されたユーザインターフェイスは、1つまたは複数の第3の画像を含み、更新されたユーザインターフェイスは、1つまたは複数の第3の画像の選択を可能にする。
【0006】
これらおよび他の実施の形態は、それぞれ、以下の特徴のうちの1つまたは複数を任意選択で含み得る:画像アルバムを生成することを含み、当該画像アルバムは、1つまたは複数の第1の画像および1つまたは複数の第2の画像のうちの少なくとも1つを含み、1つまたは複数の第2の画像のうちの少なくとも1つの選択を示す第2のユーザ入力を受信することと、画像コラージュを生成することとを含み、画像コラージュは、1つまたは複数の第1の画像および1つまたは複数の第2の画像のうちの少なくとも1つを含み、1つまたは複数の第1の画像特性を決定することは、画像が不鮮明であることを決定することを含み、1つまたは複数の第2の画像を識別することは、1つまたは複数の第2の画像の不鮮明さに基づいて1つまたは複数の第2の画像の各々を識別することを含む。
【0007】
これらおよび他の実施の形態は、それぞれ、以下の特徴のうちの1つまたは複数を任意選択で含み得る:1つまたは複数の第1の画像特性を決定することは、第1の画像に関連する位置を決定することを含み、1つまたは複数の第2の画像を識別することは、第1の画像に関連する位置の閾値距離内にあるそれぞれの位置に関連する画像を画像ライブラリから選択することを含み、方法は、画像選択のコンテキストを決定することをさらに含み、1つまたは複数の第2の画像を識別することは、画像選択のコンテキストに基づく。画像選択のコンテキストは、画像ベースの創作物の生成、および/または画像をターゲット
ソフトウェアアプリケーションに提供することであり得る。画像ベースの創作物は、画像アルバム、画像コラージュ、ビデオ、もしくは印刷された出版物のうちの少なくとも1つ、またはこれらの任意の組合せを含むことができる。
【0008】
これらおよび他の実施の形態は、それぞれ、以下の特徴のうちの1つまたは複数を任意選択で含み得る:第1の画像の複製であり、1つまたは複数の第1の画像および1つまたは複数の第2の画像のうちの少なくとも1つに基づく、1つまたは複数の第2の画像のうちの少なくとも1つの選択を示す第2のユーザ入力を受信すること、提案されたアクション要素をユーザインターフェイスに表示させること。本方法は、提案されたアクション要素のユーザ選択を受信すること、および、ユーザ選択を受信することに応答して、提案されたアクション要素に関連付けられたアクションを実行することを含むことができ、当該アクションは、以下のうちの1つ以上を含む:1つまたは複数の第1の画像および1つまたは複数の第2の画像のうちの少なくとも1つをアーカイブすること、1つまたは複数の第1の画像および1つまたは複数の第2の画像のうちの少なくとも1つを削除すること、および/または1つまたは複数の第1の画像および1つまたは複数の第2の画像のうちの
少なくとも1つの自動的な強調を実行すること。
【0009】
ある実施の形態では、コンピュータで実施される方法は、ターゲットソフトウェアアプリケーションを示すコンテキスト情報を決定することと、コンテキスト情報に少なくとも部分的に基づいて、画像ライブラリ内の1つまたは複数の第1の画像を識別することと、ユーザインターフェイスを表示させることとを含み、ユーザインターフェイスは、1つまたは複数の第1の画像を含み、ユーザインターフェイスは、1つまたは複数の第1の画像の選択を可能にし、1つまたは複数の第1の画像のうちの少なくとも1つの画像の選択を示す第1のユーザ入力を受信することと、第1のユーザ入力の受信に応答して、選択された少なくとも1つの画像をターゲットソフトウェアアプリケーションに提供することとを含む。
【0010】
これらおよび他の実施の形態は、それぞれ、以下の特徴のうちの1つまたは複数を任意選択で含み得る:選択された少なくとも1つの画像の1つまたは複数の第1の画像特性を決定することと、画像ライブラリ内の1つまたは複数の第2の画像を識別することとを含み、1つまたは複数の第2の画像の各々が1つまたは複数の第1の画像特性のうちの少なくとも1つを有しており、更新されたユーザインターフェイスを表示させることを含み、
更新されたユーザインターフェイスは、1つまたは複数の第2の画像を含み、ユーザインターフェイスは、1つまたは複数の第2の画像の選択を可能にする。
【0011】
これらおよび他の実施の形態は、それぞれ、以下の特徴のうちの1つまたは複数を任意選択で含み得る:コンテキスト情報を決定することは、ターゲットソフトウェアアプリケーションのアプリケーションタイプを決定することを含む。アプリケーションタイプは、画像共有アプリケーションを含むことができる。1つまたは複数の第1の画像を識別することは、品質閾値を満たす1つまたは複数の第1の画像を画像ライブラリから選択することを含むことができる。アプリケーションタイプは、金融アプリケーションを含むことができ、1つまたは複数の第1の画像を識別することは、レシート、文書、またはスクリーンショットのうちの1つまたは複数を含む画像ラベルに関連付けられた1つまたは複数の第1の画像を画像ライブラリから選択することを含むことができる。アプリケーションタイプは、メッセージングアプリケーションを含むことができ、コンテキスト情報を決定することは、メッセージングアプリケーションにおけるメッセージング会話における参加者の識別情報を受信することをさらに含むことができ、1つまたは複数の第1の画像を識別することは、メッセージング会話における参加者のうちの少なくとも1つを示す画像を画像ライブラリから選択することを含むことができる。
【0012】
これらおよび他の実施の形態は、それぞれ、以下の特徴のうちの1つまたは複数を任意選択で含み得る:コンテキスト情報を決定することは、ターゲットソフトウェアアプリケーションからアプリケーションコンテキストを受信することを含み、1つまたは複数の第1の画像を識別することは、アプリケーションコンテキストに基づいて1つまたは複数のセマンティック概念を決定することと、1つまたは複数の第1の画像を選択することとを含み、選択された画像の各々の少なくとも1つの画像特性がセマンティック概念の少なくとも1つと一致する。
【0013】
ある実施の形態では、非一時的なコンピュータ可読媒体は、そこに格納された命令を含み、当該命令は、1つまたは複数のハードウェアプロセッサによって実行されると、1つまたは複数のハードウェアプロセッサに動作を実行させ、当該動作は、画像ライブラリ内の1つまたは複数の第1の画像の選択を示す第1のユーザ入力を受信することと、1つまたは複数の第1の画像の1つまたは複数の第1の画像特性を決定することと、画像ライブラリ内の1つまたは複数の第2の画像を識別することとを含み、1つまたは複数の第2の画像の各々が、1つまたは複数の第1の画像特性のうちの少なくとも1つに一致する少なくとも1つの第2の画像特性に関連付けられており、ユーザインターフェイスを表示させることを含み、ユーザインターフェイスは、1つまたは複数の第2の画像を含み、ユーザインターフェイスは、1つまたは複数の第2の画像の選択を可能にし、1つまたは複数の第2の画像のうちの少なくとも1つの選択を示す第2のユーザ入力を受信することと、1つまたは複数の第1の画像および1つまたは複数の第2の画像のうちの少なくとも1つに基づいて、提案されたアクション要素をユーザインターフェイスに表示させることと、提案されたアクション要素のユーザ選択の受信に応答して、提案されたアクション要素に関連付けられたアクションを実行することとを含む。ある実施の形態では、アクションは、以下のうちの1つまたは複数を含む:1つまたは複数の第1の画像および1つまたは複数の第2の画像のうちの少なくとも1つをアーカイブすること、1つまたは複数の第1の画像および1つまたは複数の第2の画像のうちの少なくとも1つを削除すること、1つまたは複数の第1の画像および1つまたは複数の第2の画像のうちの少なくとも1つを含む画像ベースの創作物を生成すること、または、1つまたは複数の第1の画像および1つまたは複数の第2の画像のうちの少なくとも1つを自動的に強調することを実行すること。
【図面の簡単な説明】
【0014】
図1】本明細書で説明する1つまたは複数の実施の形態のために使用され得る例示的なネットワーク環境のブロック図である。
図2】ある実施の形態による、画像選択提案を提供するための例示的な方法を示すフロー図である。
図3】ある実施の形態による、画像選択提案を提供するための例示的な方法を示すフロー図である。
図4】ある実施の形態による、画像選択提案を含む例示的なユーザインターフェイス500の概略図である。
図5A】ある実施の形態による、画像選択提案を含む例示的なユーザインターフェイス400の概略図である。
図5B】ある実施の形態による、画像選択提案を含む別の例示的なユーザインターフェイス530の概略図である。
図5C】ある実施の形態による、画像の創作物および画像選択提案を含む別の例示的なユーザインターフェイス540の概略図である。
図6】本明細書で説明する1つまたは複数の実施の形態に使用され得る例示的なデバイスのブロック図である。
【発明を実施するための形態】
【0015】
1つまたは複数の実施の形態は、ユーザが画像を選択するのを補助する。本明細書で説明する1つまたは複数の実施の形態は、ユーザが選択するための提案された画像を提供することを含む。実施態様は、ユーザが、キーワードまたはフレーズを使用して画像を検索すること、スクロールによって画像ライブラリをブラウジングすることなど、低減された入力でユーザが画像を選択することを可能にするユーザインターフェイスを提供することによって利益を提供する。実施態様は、そのようなアクティビティなしにユーザが画像を選択することを可能にするユーザインターフェイスを提供することによって、検索またはブラウジングするユーザをサポートするために使用されるコンピューティングリソースを低減することができる。
【0016】
ユーザは、様々な目的のために、例えば画像ライブラリから、他のユーザと画像を共有するために、画像アルバム、画像コラージュ、印刷されたフォトブック、または画像を含むビデオなどの画像ベースの創作物を生成するために、画像を選択する。ユーザは、多数の画像、例えば、数百、数千、または数百万もの画像を含む画像ライブラリを有し得る。画像を見つけて選択することは、ユーザにとって困難であり得る。例えば、画像ライブラリ内の画像が時系列に編成されて表示される場合、ユーザは、特定の目的のために画像を閲覧および選択するために複数のスクロール操作を行う必要があるかもしれない。関心のある画像を見つけるために前後にスクロールすることは、面倒であり、ユーザは、そのようなスクロールをイライラすると思うかもしれない。さらに、画像をスクロールするそのようなユーザアクティビティは、コンピューティングデバイスがメモリまたはストレージから追加の画像を取り出し、異なる画像を示すためにユーザインターフェイスをリフレッシュすることを必要とし、コンピューティングデバイスのコンピューティングリソースの使用を必要とする。
【0017】
画像ライブラリのアプリケーションは、画像検索の特徴を含むことができる。例えば、ユーザはテキストクエリを指定することができ、画像ライブラリのアプリケーションは、検索に関連する画像をライブラリから返すことができ、ユーザは、返された画像から画像を選択することができる。しかしながら、これは、ユーザがクエリを定義することを必要とする。さらに、ユーザは、選択すべき画像の組全体を得るために、複数の異なるクエリを指定する必要があり得る。クエリを介して画像を検索して選択することは、面倒である。さらに、ユーザの検索アクティビティは、コンピューティングデバイスが、例えば、当該コンピューティングデバイス上にローカルに格納された、またはネットワークを介した遠隔サーバに格納された画像ライブラリにアクセスすることを、および、ユーザ指定の検
索クエリに一致する画像を識別することを要求し、当該コンピューティングデバイスのコンピューティングリソースの使用を必要とする。
【0018】
本文書に記載される実施の形態は、多数の画像を含む画像ライブラリから画像を発見および選択することにおける問題のいくつかに対処する。ある実施の形態では、画像ライブラリ中の1つまたは複数の第1の画像の選択を示す第1のユーザ入力が受け取られる。1つまたは複数の第1の画像の1つまたは複数の第1の画像特性が決定される。画像ライブラリ内の1つまたは複数の第2の画像は、自動的に識別され、1つまたは複数の第1の画像特性のうちの少なくとも1つに一致する少なくとも1つの第2の画像特性にそれぞれ関連付けられる。当該1つまたは複数の第2の画像を含み、当該1つまたは複数の第2の画像の選択を可能にするユーザインターフェイスが表示される。
【0019】
ユーザ選択に合致する画像を自動的に識別して提示することによって、本明細書で説明する実施の形態は、ユーザが画像ライブラリをスクロールするときに画像を表示する、またはユーザ入力によって指定されたテキスト検索クエリを満たす結果として得られる画像を表示する必要性を排除する。ユーザ入力が画像を選択すると、適合する特性を有するユーザの画像ライブラリからの追加画像は、自動的に識別され、ユーザが選択するために提示される。このようにして、本明細書で説明される技法は、画像の記憶、表示、および選択からの効率的な検索を可能にし、画像の容易な発見および選択を可能にするユーザインターフェイスを提示する。スクロールされた画像の長い表示を低減または回避することによって、および、テキスト検索クエリからの検索結果の複数の検索および表示を低減または回避することによって、デバイスリソースの消費を低減することが可能になる。
【0020】
記載される提案された画像選択は、ユーザインターフェイスにおける画像のより迅速かつより効率的な表示、および画像を位置付けおよび選択するためのユーザインターフェイスとのユーザのより効率的な相互作用を可能にすることができる。例えば、提案された画像選択の表示は、ユーザが容易に画像を選択することを可能にし、選択すべき画像を決定するために検索クエリを指定するテキストまたは他の複雑な入力を手動で提供する必要性を低減または排除する。さらに、提案された画像選択は、画像を表示する時間および処理を低減し、画像を見つけるために手動で指定された検索が受け取られる回数を低減する。提案された画像選択はまた、クライアントデバイスが、検索(例えば、スマートウォッチまたはキーボードまたはマイクロフォンを含まない他のウエアラブルデバイス)のための容易で、単純な、または任意のテキスト入力機能がないときに有用である。そのような特徴は、低減されたユーザ入力および低減された時間を伴うコンテンツ表示プログラムとの対話を可能にし、したがって、そうでなければ、そのようなプログラムにおいてユーザ入力を受信し、処理し、結果を表示するために必要とされるであろう、デバイスリソースの消費を低減する。
【0021】
したがって、1つまたは複数の説明される実施の形態の技術的効果は、ユーザインターフェイスにおけるコンテンツデータアイテムの表示が、結果を得るのに費やされるより少ない計算時間およびより少ない計算リソースで提供されることである。例えば、記載される技術および特徴の技術的効果は、当該記載される技術または特徴のうちの1つまたは複数を提供しない従来のシステムと比較して、特定の画像を表示および選択するために利用されるシステム処理リソースの消費の低減である。例えば、以前のシステムは、検索クエリをテキストとして受信するための以前の技術を使用することができ、この場合、どの検索クエリが選択すべき画像を提供するのに関連するかをユーザが決定するときに検索結果の反復を表示するために、プロセッサ、メモリ、およびディスプレイリソースなどの(対応する電力消費を伴う)追加の計算リソースが必要である。
【0022】
記載される技術および特徴のさらなる技術的効果は、当該記載される技術または特徴の
うちの1つまたは複数を提供しないシステムによって利用される、表示および検索処理などのシステム処理リソースの消費ならびにおよび電力消費の低減である。例えば、そのような従来のシステムでは、ユーザは、コンテンツ要素のビューを手動でスクロールし、ユーザは、そのような手動スクロールを介して所望のコンテンツアイテムを手動で位置付けなければならず、(例えば、コンテンツデータアイテムを前方向および後方向への繰り返しの表示およびスクロール、ユーザからコンテンツアイテムを表示および/又は検索する
ためのコマンドを繰り返し受信すること等のために)システムリソースの非効率的な使用につながる。
【0023】
本明細書で記載されるある実施の形態が、ユーザに関する個人情報(例えば、ユーザデータ、ユーザのソーシャルネットワークに関する情報、その場所におけるユーザの場所および時間、ユーザのバイオメトリック情報、ユーザの活動および人口統計情報)を収集または使用し得る状況では、ユーザは、情報が収集されるかどうか、個人情報が記憶されるかどうか、個人情報が使用されるかどうか、および情報がどのようにユーザに関して収集され、記憶され、使用されるかを制御する1つまたは複数の機会を提供される。すなわち、本明細書で説明されるシステムおよび方法は、特に、それを行なうように適切なユーザからの明示的な許可を受けて、ユーザ個人情報を収集し、記憶し、および/または使用す
る。例えば、ユーザは、プログラムまたは特徴が、その特定のユーザまたはそのプログラムまたは特徴に関連する他のユーザに関するユーザ情報を収集するかどうかに関する制御を提供される。個人情報が収集されるべき各ユーザには、そのユーザに関連する情報収集の制御を可能にし、情報が収集されるかどうか、および情報のどの部分が収集されるべきかに関する許可または認可を提供するために、1つまたは複数のオプションが提示される。例えば、ユーザは、通信ネットワークを介して1つまたは複数のそのような制御オプションを提供され得る。さらに、特定のデータは、個人的に識別可能な情報が取り除かれるように保存または使用される前に、1つまたは複数の方法で取り扱われてもよい。一例として、ユーザの識別情報は、個人的に識別可能な情報が決定されないように取り扱うことができる。別の例として、ユーザの特定の位置を決定することができないように、ユーザデバイスの地理的位置をより大きな領域にまで一般化することができる。
【0024】
本明細書において言及される画像は、1つまたは複数の画素値(例えば、色値、輝度値など。)を有するピクセルを有するデジタル画像である。画像は、静止画像または単一画像であり得るか、または一連の画像、たとえば、ビデオフレームのビデオシーケンスにおけるフレームに含まれる画像、または異なるタイプのシーケンスもしくは画像のアニメーションにおける画像であり得る。ビデオは、複数の画像のシーケンスを含む。たとえば、本明細書で記載される実施の形態は、単一画像または静止画像(例えば、写真、絵文字、または他の画像)、ビデオ、または動画画像(例えば、シネマグラフまたは動きを含む他の動画、アニメーションおよび音声を含むステッカーなど。)であるコンテンツデータアイテムとともに使用され得る。テキストは、本明細書で参照されるように、英数字、絵文字、記号、または他の文字を含むことができる。音声セグメントは、例えばスピーカから音声を提供するために処理することができる標準的な音声フォーマットで提供される音声データを含むことができる。
【0025】
図1は、本明細書で記載されるある実施の形態で使用され得る例示的なネットワーク環境100のブロック図を示す。ある実施の形態では、ネットワーク環境100は、1つまたは複数のサーバシステム、たとえば、図1の例ではサーバシステム102および第2のサーバシステム140を含む。サーバシステム102および140は、例えば、ネットワーク130と通信することができる。サーバシステム102は、サーバデバイス104およびデータベース106または他のストレージデバイスを含むことができる。ある実施の形態では、サーバデバイス104は、画像ライブラリアプリケーション156bを提供し
得る。第2のサーバシステム140は、1つまたは複数のアプリケーション、たとえば、
メッセージングアプリケーションA144、画像共有アプリケーションB146、および金融アプリケーションC148を提供するように構成された第2のサーバデバイス142を
含むことができる。
【0026】
ネットワーク環境100はまた、ネットワーク130を介して互いに、および/または
サーバシステム102および/または第2のサーバシステム140と通信することができ
る、1つまたは複数のクライアントデバイス、たとえば、クライアントデバイス120,122,124および126を含むことができる。ネットワーク130は、インターネット、ローカルエリアネットワーク(LAN)、ワイヤレスネットワーク、スイッチまたはハブ接続などのうちの1つまたは複数を含む、任意のタイプの通信ネットワークであり得る。ある実施の形態では、ネットワーク130は、たとえば、ピアツーピアワイヤレスプロトコル(例えば、Bluetooth(登録商標)、Wi-Fi(登録商標) Directなど。)などを
使用する、デバイス間のピアツーピア通信を含み得る。2つのクライアントデバイス120と122との間のピアツーピア通信の一例が矢印132によって示されている。
【0027】
説明を容易にするために、図1は、サーバシステム102、サーバデバイス104、データベース106、第2のサーバシステム140、および第2のサーバデバイス142の1つのブロックを示し、クライアントデバイス120,122,124および126の4つのブロックを示す。サーバブロック102,104,106,140および142は、複数のシステム、サーバデバイス、およびネットワークデータベースを表してもよく、ブロックは、示されるものとは異なる構成で提供されてもよい。例えば、サーバシステム102および/または第2のサーバシステム140は、ネットワーク130を介して他のサ
ーバシステムと通信することができる複数のサーバシステムを表すことができる。
【0028】
ある実施の形態では、サーバシステム102および/または第2のサーバシステム14
0は、たとえば、クラウドホスティングサーバを含み得る。いくつかの例では、データベース106および/または他の記憶デバイスは、サーバデバイス104とは別個のサーバ
システムブロック内に提供され、ネットワーク130を介してサーバデバイス104および他のサーバシステムと通信することができる。また、任意の数のクライアントデバイスが存在してもよい。各クライアントデバイスは、任意のタイプの電子デバイス、例えば、デスクトップコンピュータ、ラップトップコンピュータ、携帯またはモバイルデバイス、携帯電話、スマートフォン、タブレットコンピュータ、テレビ、テレビセットトップボックスまたはエンターテインメントデバイス、ウェアラブルデバイス(例えば、表示眼鏡またはゴーグル、腕時計、ヘッドセット、アームバンド、ジュエリーなど)、携帯情報端末(PDA)、メディアプレーヤ、ゲーム装置などであり得る。いくつかのクライアントデバ
イスはまた、データベース106または他のストレージと同様のローカルデータベースを有し得る。ある実施の形態では、ネットワーク環境100は、示される構成要素のすべてを有さなくてもよく、および/または本明細書で記載される構成要素の代わりに、または
それに加えて、他のタイプの構成要素を含む他の構成要素を有してもよい。
【0029】
様々な実施の形態では、エンドユーザU1、U2、U3、およびU4は、それぞれのクライアントデバイス120,122,124および126を使用して、サーバシステム102と、および/または互いに通信することができる。いくつかの例では、ユーザU1、
U2、U3、およびU4は、それぞれのクライアントデバイスおよび/またはサーバシス
テム102もしくは第2のサーバシステム140上で実行されるアプリケーションを介して、および/またはサーバシステム102もしくは第2のサーバシステム140上に実施
されるネットワークサービス、たとえばソーシャルネットワークサービスもしくは他のタイプのネットワークサービスを介して、互いに相互作用することができる。たとえば、それぞれのクライアントデバイス120,122,124および126は、1つまたは複数のサーバシステム(例えば、システム102、第2のサーバシステム140)との間でデ
ータを通信することができる。
【0030】
ある実施の形態では、サーバシステム102および/または第2のサーバシステム14
0は、各クライアントデバイスがサーバシステム102または第2のサーバシステム140および/またはネットワークサービスにアップロードされた通信コンテンツまたは共有
コンテンツを受信することができるように、適切なデータをクライアントデバイスに提供することができる。いくつかの例では、ユーザU1~U4は、オーディオもしくはビデオ会議、オーディオ、ビデオ、もしくはテキストチャット、または他の通信モードもしくはアプリケーションを介して相互作用することができる。サーバシステム102または第2のサーバシステム140によって実施されるネットワークサービスは、ユーザが様々な通信を実行すること、リンクおよび関連付けを形成すること、画像、テキスト、ビデオ、オーディオ、および他のタイプのコンテンツなどの共有コンテンツをアップロードおよびポストすること、かつ/または他の機能を実行することを可能にするシステムを含むことが
できる。たとえば、クライアントデバイスは、クライアントデバイスに送信またはストリーミングされ、サーバおよび/またはネットワークサービスを介して(または異なるクラ
イアントデバイスから直接)、異なるクライアントデバイスから発信されるか、またはサーバシステムおよび/またはネットワークサービスから発信されるコンテンツポストなど
の受信データを表示することができる。ある実施の形態では、クライアントデバイスは、たとえば、上述したように、クライアントデバイス間のピアツーピア通信を使用して、互いに直接通信することができる。ある実施の形態では、「ユーザ」は、システムまたはネットワークとインターフェイスする人と同様に、1つまたは複数のプログラムまたは仮想エンティティを含み得る。
【0031】
ある実施の形態では、クライアントデバイス120、122、124、および/または
126のいずれかが、1つまたは複数のアプリケーションを提供することができる。例えば、図1に示されるように、クライアントデバイス120は、カメラアプリケーション152、画像ライブラリアプリケーション156a、および1つまたは複数の他のアプリケ
ーション154を提供し得る。クライアントデバイス122~126はまた、同様のアプリケーションを提供してもよい。例えば、カメラアプリケーション152は、各クライアント装置のユーザ(例えばユーザU1~U4)に例えば、各クライアント装置のカメラを用いて、画像をキャプチャする能力を提供し得る。例えば、カメラアプリケーション152は、クライアント装置120において実行するソフトウェアアプリケーションであり得る。ある実施の形態では、カメラアプリケーション152は、ユーザインターフェイスを提供してもよい。
【0032】
ある実施の形態では、クライアントデバイス120は、画像ライブラリアプリケーション156aを含み得る。画像ライブラリアプリケーション156aは、図6を参照して説明されるように、クライアントデバイス120のハードウェアおよび/またはソフトウェア
を使用して実施され得る。異なる実施の形態では、画像ライブラリアプリケーション156aは、たとえば、クライアントデバイス120~124のいずれかで実行されるスタン
ドアロンの画像ライブラリアプリケーションであってもよく、またはサーバシステム102上に提供される画像ライブラリアプリケーション156bと連携して動作してもよい。
画像ライブラリアプリケーション156aおよび画像ライブラリアプリケーション156bは、画像管理機能を提供することができる。画像管理機能は、カメラアプリケーション152を使用してキャプチャされた写真およびビデオを記憶する機能と、他の画像、例えば、スキャンされた画像、スクリーンショットなどを記憶する機能と、画像編集機能と、画像コラージュ、ビデオ、画像アルバム、または印刷された出版物(例えば、フォトブック)のような画像ベースの創作物を生成する機能とを含み得る。画像ライブラリアプリケーション156はまた、画像、例えば、画像ピクセルおよび画像メタデータをプログラム的に分析して、1つまたは複数の画像特性を決定し得る。画像ライブラリアプリケーション
156は、例えば、クライアントデバイスのローカルストレージ、および/またはネット
ワーク130を介して通信する1つまたは複数の他のデバイスのリモートストレージ、例えば、サーバシステム102および/または140のデータベース106、1つまたは複
数の異なるクライアントデバイスのストレージなどに画像データおよび特徴を記憶し得る。
【0033】
ある実施の形態では、クライアントデバイス120は、1つまたは複数の他のアプリケーション154を含み得る。例えば、他のアプリケーション154は、様々な種類の機能、例えば、カレンダー、アドレス帳、電子メール、ウェブブラウザ、ショッピング、輸送(例えば、タクシー、電車、エアライン予約など。)、エンターテインメント(例えば、音楽プレーヤ、ビデオプレーヤ、ゲームアプリケーションなど。)、ソーシャルネットワーキング(例えば、メッセージングまたはチャット、音声/映像呼び出し、画像/映像共有など。)などを提供するアプリケーションであり得る。ある実施の形態では、他のアプリケーション154のうちの1つまたは複数は、クライアントデバイス120上で実行するスタンドアロン型アプリケーションであり得る。ある実施の形態では、他のアプリケーション154のうちの1つまたは複数は、アプリケーション154のデータおよび/または
機能を提供するサーバシステム、たとえば、第2のサーバシステム140にアクセスすることができる。たとえば、第2のサーバシステム140によって提供されるものとして示されているアプリケーション144,146および148のいずれかは、データおよび/
またはコマンドを他のアプリケーション154のうちの1つまたは複数に提供することができる。ある実施の形態では、サーバアプリケーション144-148は、たとえば、ウ
ェブブラウザまたは他のクライアント側プログラムを介してクライアントデバイスによってアクセスされるスタンドアロン型アプリケーションであり得る。
【0034】
クライアントデバイス120、122、124、および/または126上のユーザイン
ターフェイスは、通信、プライバシー設定、通知、および他のデータと同様に、ユーザコンテンツ、ならびに、画像、ビデオ、データ、および他のコンテンツを含む他のコンテンツの表示を可能にすることができる。そのようなユーザインターフェイスは、クライアントデバイス上のソフトウェア、サーバデバイス上のソフトウェア、および/または、クラ
イアントソフトウェアとサーバデバイス104および/または第2のサーバデバイス14
2上で実行するサーバソフトウェアとの組み合わせ、たとえば、アプリケーションソフトウェア、またはサーバシステム102および/または第2のサーバデバイス142と通信
するクライアントソフトウェアを使用して表示することができる。ユーザインターフェイスは、クライアントデバイスまたはサーバデバイスのディスプレイデバイス、たとえば、タッチスクリーンまたは他のディスプレイスクリーン、プロジェクタなどによって表示され得る。ある実施の形態では、サーバシステム上で実行されるアプリケーションプログラムは、クライアントデバイスにおいてユーザ入力を受信し、当該クライアントデバイスにおいて視覚データ、音声データなどのデータを出力するために、当該クライアントデバイスと通信することができる。
【0035】
ある実施の形態では、サーバシステム102、第2のサーバシステム140、および/
または1つまたは複数のクライアントデバイス120~126のいずれかが、通信アプリケーションプログラムを提供することができる。通信プログラムは、システム(例えば、クライアントデバイスまたはサーバシステム)が他のデバイスと通信するためのオプションを提供することを可能にし得る。通信プログラムは、サーバシステムまたはクライアントデバイスに関連付けられたディスプレイデバイスに表示される1つまたは複数の関連付けられたユーザインターフェイスを提供することができる。ユーザインターフェイスは、通信モード、通信するユーザまたはデバイスなどを選択するための様々なオプションをユーザに提供し得る。通信プログラムは、たとえば、様々なフォーマットのいずれかで、送信されたコンテンツポストおよび受信されたコンテンツポストを表示またはそうでなけれ
ば出力することができる。
【0036】
本明細書で説明する特徴の他の実施の形態は、任意のタイプのシステムおよび/または
サービスを使用することができる。例えば、ソーシャルネットワーキングサービスの代わりに、またはソーシャルネットワーキングサービスに加えて、他のネットワークサービス(例えば、インターネットに接続される)が使用され得る。任意の種類の電子デバイスは、本明細書に記載の特徴を利用することができる。ある実施の形態は、コンピュータネットワークから切断されるかまたは断続的に接続される1つまたは複数のクライアントデバイスまたはサーバデバイス上に、本明細書で説明される1つまたは複数の特徴を提供することができる。いくつかの例では、ディスプレイデバイスを含むか、またはディスプレイデバイスに接続されたクライアントデバイスは、当該クライアントデバイスにローカルなストレージデバイスに記憶された、たとえば、通信ネットワークを介して以前に受信された画像を表示することができる。
【0037】
図2は、ある実施の形態に従って画像選択提案を提供するための例示的な方法を示すフロー図である。ある実施の形態では、方法200は、たとえば、図1に示されるように、サーバシステム102上で実施され得る。ある実施の形態では、方法200の一部または全部は、図1に示されるように、1つまたは複数のクライアントデバイス120,122,124,または126上で、1つまたは複数のサーバデバイス上で、および/またはサ
ーバデバイスとクライアントデバイスの両方上で実施され得る。説明される例では、実施システムは、1つまたは複数のデジタルプロセッサまたは処理回路(「プロセッサ」)と、1つまたは複数の記憶デバイス(例えば、データベース106または他の記憶装置)とを含む。ある実施の形態では、1つまたは複数のサーバおよび/またはクライアントの異
なる構成要素は、方法200の異なるブロックまたは他の部分を実行することができる。いくつかの例では、第1のデバイスは、方法200のブロックを実行するものとして説明される。ある実施の形態は、結果またはデータを第1のデバイスに送信することができる1つまたは複数の他のデバイス(例えば、他のクライアントデバイスまたはサーバデバイス)によって実行される方法200の1つまたは複数のブロックを有することができる。
【0038】
ある実施の形態では、方法200または当該方法の一部は、システムによって自動的に開始され得る。ある実施の形態では、実施システムは第1のデバイスである。例えば、本方法(またはその部分)は、定期的に実行することができ、あるいは1つまたは複数の特定のイベントまたは条件、例えば、ユーザによって開始されるアプリケーション、ユーザによって選択される画像、および/または本方法によって読み取られる設定において指定
され得る1つまたは複数の他の条件に基づいて実行することができる。ある実施の形態では、そのような条件は、格納された当該ユーザのカスタム選好においてユーザによって指定され得る。
【0039】
一例では、クライアントデバイスは、カメラ、携帯電話、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス、または、コンテンツ入力(例えば、画像キャプチャ)を受信し、かつ、ユーザによる当該クライアントデバイスへのユーザ入力(例えば、タッチスクリーンを使用すること、ジェスチャを使用すること、マウスまたは他のポインティングデバイスを使用すること、キーボードを使用することなど。)を受信することができ、方法200を実行することができる他のクライアントデバイスであり得る。別の例では、クライアントデバイスまたはサーバデバイスが方法200を実行することができる。ある実施の形態は、ユーザ入力に基づいて方法200を開始することができる。ユーザ(例えば、オペレータまたはエンドユーザ)は、例えば、ユーザインターフェイス、例えば、アプリケーションユーザインターフェイスまたは他のユーザインターフェイスから方法200の開始を選択してもよい。ある実施の形態では、方法200は、クライアントデバイスによって実施され得る。ある実施の形態では、方法200は、サーバデバイスによ
って実施され得る。
【0040】
本明細書で言及する画像は、1つまたは複数の画素値(例えば、色値、輝度値など。)を有するピクセルを有するデジタル画像を含むことができる。画像は、静止画像(例えば、静止写真、単一フレームを有する画像など。)、動画像(例えば、アニメーション、動画GIF、画像の一部分が動きを含み、他の部分が静止しているシネマグラフなど。)、お
よびビデオ(例えば、オーディオを含むことができる画像または画像フレームのシーケンス)であり得る。本明細書の残りは静止画像として画像を言及するが、本明細書で説明される技術は、動画像、ビデオなどに適用可能であることを理解されたい。たとえば、本明細書で説明する実施の形態は、静止画像(例えば、写真、絵文字、または他の画像)、ビデオ、または動画像)とともに使用され得る。テキストは、本明細書で参照されるように、英数字、絵文字、記号、または他の文字を含むことができる。
【0041】
ブロック202では、方法200の実施において、ユーザデータを使用するためにユーザの同意(例えば、ユーザ許可)が得られたかどうかがチェックされる。たとえば、ユーザデータは、クライアントデバイスを使用してユーザによってキャプチャされた画像、たとえば、クライアントデバイスを使用してユーザによって記憶またはアクセスされた画像、画像メタデータ、画像共有アプリケーションの使用に関連するユーザデータ、メッセージングアプリケーションの使用に関連するユーザデータ、金融アプリケーションの使用に関連するユーザデータ、ソーシャルネットワーキングアプリケーションの使用に関連するユーザデータ、ユーザ選好、ユーザバイオメトリック情報、ユーザ特性(同一性、名前、年齢、性別、職業など。)、ユーザのソーシャルネットワークおよび連絡先に関する情報、ソーシャルおよび他の種類のアクションおよびアクティビティ、ユーザによって作成または提出されたコンテンツ、格付け、および意見、ユーザの現在位置、過去のユーザデータ、ユーザによって生成、受信、および/またはアクセスされる画像、ユーザによって閲
覧または共有される画像などを含み得る。本明細書で説明される方法の1つまたは複数のブロックは、ある実施の形態では、そのようなユーザデータを使用し得る。
【0042】
方法200においてユーザデータが使用され得る関連ユーザからユーザ同意が得られた場合、ブロック204において、本明細書の方法のブロックは、それらのブロックに関して記載されたようなユーザデータの可能な使用を用いて実施され得ると判定され、方法はブロック212に続く。ユーザの同意が得られていない場合、ブロック206において、ブロックがユーザデータを使用せずに実施されるべきであると決定され、方法はブロック212に続く。ある実施の形態では、ユーザの同意が得られていない場合、ブロックは、ユーザデータを使用せずに、合成データおよび/または汎用データもしくは公にアクセス
可能かつ公的に使用可能なデータを用いて実施される。ユーザの同意が取得されていない場合、方法200は実行されない。
【0043】
方法200のブロック212では、第1の画像の選択が受け取られる。例えば、ユーザの画像ライブラリからの複数の画像が、デバイスの表示画面に表示されてもよい。ある実施の形態では、画像サムネイルが表示され得、サムネイルの選択は、対応する画像の選択に対応し得る。例えば、画像またはサムネイルは、グリッド構成、例えば、1行当たり3つの画像、1行当たり4つの画像等で表示されてもよい。
【0044】
ある実施の形態では、画像は、1つまたは複数の画像特性によって、たとえば、対応する画像に関連付けられた日付または時間によって、対応する画像に関連付けられたロケーション(たとえば、地理的ロケーション)によって、対応する画像が属する画像アルバムによって、などにより、グループ化され得る。ある実施の形態では、ユーザが、顔認識の使用、および/または画像内に描写される人物によって画像をグループ化する画像タグ付
けの使用を許可する場合、画像は、例えば、「アンドリューとエニカ」、「アンドリュー
とジョイス」、「エニカ」などの人物によってグループ化され得る。ある実施の形態では、グループは、複数の画像特性または因子、たとえば、「森の小道にいるアンドリューとエニカ」、「ジョイスとの昨日」などを利用することができる。
【0045】
ある実施の形態では、1つまたは複数の第1の画像の選択を示す第1のユーザ入力が受信される。ある実施の形態では、ユーザ入力を受信することは、タッチスクリーンに表示された画像上でのタップまたはプレスジェスチャを検出すること、音声入力、注視入力、入力デバイス(マウス、ジョイスティック、トラックパッドなど)の操作を検出することなどを含み得る。ユーザは、画面(例えば、画像サムネイルもしくは他の画像表現、または画像全体のディスプレイ)に表示された対応する画像要素を選択することによって、複数の画像のうちの1つまたは複数を選択することができる。ある実施の形態では、画像はスクロール可能であってもよく、またはユーザが当該複数の画像の様々なおよび/または
追加の画像を選択することができるように、複数のページまたはセクションに編成されてもよい。1つまたは複数の第1の画像のユーザ選択を受信すると、方法はブロック214に進む。
【0046】
ブロック214において、選択された画像の第1の画像特性、例えば、1つまたは複数の第1の画像が決定される。ある実施の形態では、第1の画像特性を決定することは、第1の画像に関連して記憶された画像メタデータから画像特性を検索することを含み得る。ある実施の形態では、第1の画像特性を決定することは、画像データベースから、たとえば、画像および画像特性をデータベースに格納する画像ライブラリから、画像特性を検索することを含み得る。
【0047】
ある実施の形態では、第1の画像特性は、画像コンテンツ(例えば、第1の画像の画素値)および/または画像メタデータ(例えば、キャプチャの日付、キャプチャの位置、カ
メラ作成/モデル、カメラ設定、画像解像度、画像色深度など。)の分析に基づいて決定
され得る。ある実施の形態では、画像コンテンツの分析は、たとえば、画像のユーザの選択を受信する前に、オフラインで実行され得る。例えば、ある画像の画像内容の分析は、当該画像が生成される(例えば、カメラを使用してキャプチャされ、スクリーンショットとしてキャプチャされる等の)とき、または、ライブラリに追加された(例えば、画像ライブラリを有するデバイス上にダウンロードまたは格納された)ときに実行され得る。
【0048】
ある実施の形態では、第1の画像特性は、画像をプログラム的に分析することによって決定され得る。ある実施の形態では、第1の画像特性は、画像に関連する1つまたは複数のラベルを含み得る。ある実施の形態では、1つまたは複数のラベルは、画像ピクセル値および/または画像メタデータに基づくことができる。ある実施の形態では、1つまたは
複数のラベルは、画像に関連する1つまたは複数のセマンティック概念を含み得る。ある実施の形態では、セマンティック概念は、概念の階層、たとえば、「食品→ケーキ→誕生日ケーキ」、「スポーツ→ベースボール→用具→バット」などに編成され得、範囲が狭い概念は、範囲が広い概念カテゴリに含まれ得る。画像に関連する任意の数のセマンティック概念が存在し得る。セマンティック概念は、画像内の1つまたは複数のオブジェクトを検出すること、焦点、照明レベル、画像合成、色分布などの画像属性、位置、時間、および他のメタデータなどのメタデータ、および他の因子のうちの1つまたは複数に基づいて決定され得る。ある実施の形態では、セマンティック概念は、画像からセマンティック概念を認識するようにトレーニングされた機械学習モデルを使用して決定され得る。
【0049】
ある実施の形態では、画像特性、たとえば、1つまたは複数のラベルは、信頼スコアに関連付けられ得る。信頼スコアは、特定のラベルが画像に適用される信頼の程度を示し得る。1つまたは複数のラベルおよび対応する信頼スコアは、画像をプログラム的に分析することに基づくことができる。ある実施の形態では、画像をプログラム的に分析すること
は、トレーニングされた機械学習モデルを使用して実行され得る。ある実施の形態では、画像をプログラム的に分析することは、オブジェクト検出および認識技術を使用して実行され得る。ある実施の形態では、様々な画像分析技術の組合せが使用され得る。
【0050】
ユーザが同意を提供するある実施の形態では、画像をプログラム的に分析することは、画像ピクセルデータから1つまたは複数のセマンティック概念を識別することを含み得る。例えば当該画像が、屋内で撮影されたか屋外で撮影されたかを判定することができる。別の例では、機械学習モデルは、画像が様々なオブジェクト、例えば、木、花、建物、河または海、山などのうちの1つまたは複数を示すかどうかを決定することができる。ある実施の形態では、機械学習モデルは、たとえば、「赤いバラ」、「12階建ての建物」、「コーヒーショップ」、「バースデーケーキ」などに示されるオブジェクトの特定の特徴を決定することができる。
【0051】
ユーザが同意を提供するある実施の形態では、画像内の1つまたは複数のオブジェクト、たとえば「タージマハル」、「ベースボールバット」、「アイスクリーム」などが認識され得る。ユーザが顔検出の使用の同意を提供する実施の形態では、画像が1人または複数の人物を示す(例えば、「画像は3人の人を有する」または「画像は2人の女性を示す」)かどうかを決定することができる。ユーザが顔認識技術の使用の同意を提供する実施の形態では、画像内の人、例えば「ジョイス」、「アンドリュー」等を認識してもよい。
【0052】
ユーザが同意を提供するある実施の形態では、画像特性は、画像メタデータから決定され得る。例えば、そのような画像特性は、カメラ製造/型式、カメラ設定(例えば、絞り
、フラッシュの使用、カメラモードなど。)、画像キャプチャの日付および/または時間
、(ユーザが位置データの使用を許可する場合)画像キャプチャの位置を含み得る。
【0053】
ユーザが同意を提供するある実施の形態では、1つまたは複数のセマンティック概念は、画像および/または画像メタデータで示されるオブジェクトに基づいて決定されてもよ
く、たとえば、フラッシュがオンにされて画像がキャプチャされるとき、示されるオブジェクトは、ダイニングテーブルおよび料理を含み、画像キャプチャの位置および時間は、当該画像が夜間にキャプチャされたことを示し、セマンティック概念は、「ディナー」および「屋内」であり得る。別の例では、画像が水およびボートを示すとき、「航海」というセマンティック概念は、当該画像に関連付けられてもよい。
【0054】
画像内のオブジェクトの認識および/または画像に対応するセマンティック概念の決定
時に、1つまたは複数のラベルを画像に関連付けることができる。画像特性、たとえば1つまたは複数のラベルは、たとえば画像ファイル内の画像メタデータとして、データベースに記憶され得る。例えば、関連付けられたラベルは「ジョイス、ディナー、屋内、家」、「ハイキング、ヨセミテ国立公園」等であり得る。
【0055】
ある実施の形態では、画像特性は、画像タイプ、たとえば、画像をプログラム的に分析することに基づいて決定される「文書」、「レシート」、「スクリーンショット」、「写真」などを含み得る。ある実施の形態では、画像特性は、画像をプログラム的に分析することに基づいて決定された画像属性、たとえば、「不鮮明」、「暗」などを含み得る。ブロック214の後には、ブロック216が続くことができる。
【0056】
ブロック216では、画像ライブラリ内の1つまたは複数の第2の画像が識別される。ある実施の形態では、1つまたは複数の第2の画像は、ユーザによって選択された1つまたは複数の第1の画像のうちの1つまたは複数の第1の画像特性の画像特性と同じまたは類似する少なくとも1つの画像特性を有し得る。例えば、ユーザが不鮮明な第1の画像を選択した場合、不鮮明という画像特性にそれぞれ関連付けられる1つまたは複数の第2の
画像が識別される。
【0057】
別の例では、ユーザが文書の2つの画像(例えば、文書であると判定されたテキストまたは視覚コンテンツを示す画像)を選択した場合、それぞれが画像特性「文書」に関連する1つまたは複数の第2の画像が識別される。別の例では、ユーザがスクリーンショット(例えば、デバイスの表示画面のコンテンツのキャプチャ)である2つの画像を選択した場合、各スクリーンショットである1つまたは複数の第2の画像が識別され、例えば画像特性「スクリーンショット」に関連付けられる。別の例では、ユーザが、2人の個人、例えば、ジョイスおよびアンドリューを示す画像を選択した場合、それぞれ「ジョイス」および「アンドリュー」のうちの少なくとも1つの画像ラベルに関連する1つまたは複数の第2の画像が識別される。
【0058】
別の例では、第1の画像のうちの1つまたは複数が場所、たとえば「タージマハル」に関連付けられている場合、同じまたは同様の場所、たとえば「タージマハル」、「アグラ」などに関連付けられている1つまたは複数の第2の画像が選択され得る。ある実施の形態では、1つまたは複数の第2の画像は、第2の画像に関連付けられた場所が、第1の画像に関連付けられた位置の閾値距離内にあるように選択され得る。例えば、閾値距離は、数値距離、例えば「5マイル」であり得る。ある実施の形態では、1つまたは複数の第2の画像は、場所、たとえば、市名、国名などのマッチングに基づいて選択され得る。ある実施の形態では、1つまたは複数の第2の画像は、第1の場所で第1の画像によって描写されるものと同じ特性のうちの1つまたは複数を示す画像、たとえば、モニュメント、ブリッジ、または摩天楼などに基づいて選択され得る。
【0059】
ある実施の形態では、画像選択のコンテキストが決定され得る。例えば、ユーザが第1のユーザ入力を与えるユーザインターフェイスは、例えば画像コラージュ、画像ライブラリ内の画像に基づくビデオ、画像アルバム、または印刷された出版物、例えばフォトブックなど、1つまたは複数のデバイスによって画像ベースの創作物を生成することに関連付けられていると決定され得る。ある実施の形態では、画像選択のコンテキストは、画像選択のためのユーザインターフェイスが開始された、関連付けられたターゲットソフトウェアアプリケーション、たとえば、メッセージングアプリケーション、画像共有またはソーシャルネットワーキングアプリケーション、金融アプリケーションなどであってもよく、または、これらに基づいてもよい。
【0060】
画像選択のコンテキストが決定される実施の形態では、1つまたは複数の第2の画像を識別することは、コンテキストに基づいてもよい。たとえば、コンテキストは、第2の画像を選択するための1つまたは複数の選択基準と(たとえば、ブロック216の前に)関連付けられ得る。たとえば、コンテキストが、画像共有アプリケーションを介してフォトブックを生成することまたは共有することとして決定される場合、1つまたは複数の第2の画像は、そのコンテキストに関連付けられる品質基準、たとえば、画像解像度基準、画像色深度基準、画像焦点基準などに基づいて選択され得る。いくつかの例では、画像解像度閾値基準を満たさない画像は、そのような画像が第1の画像特性に合致する特性を有する場合であっても、1つまたは複数の第2の画像から除外され得る。別の例では、コンテキストが金融アプリケーションとして決定される場合、ある特性、たとえば、画像タイプ「レシート」、「請求書」、「財務諸表」、「文書」などを有する画像を1つまたは複数の第2の画像に含めることができ、他の画像を除外することができる。
【0061】
ある実施の形態では、1つまたは複数の第2の画像は、第1の画像の画像特性に一致するいくつかの画像特性に基づいて選択またはフィルタリングされる。例えば、第1の画像が「ビーチにいるジョイスとアンドリュー」を示す場合、第2の画像は、3つの特性「ジョイス」、「アンドリュー」および「ビーチ」のうちのどれだけ多くが第2の画像の各々
に関連するかに基づいて選択されてもよい。一例では、画像ライブラリが、3つの特性の全てを有する画像A、画像B、および画像Cと、3つの特性のうちの2つを有するさらなる画像D,EおよびFとを含む場合、画像A,BおよびCは、1つまたは複数の第2の画像として選択されてもよく、画像D,EおよびFは、第2の画像から除外されてもよい。ある実施の形態では、画像A~Fは、第2の画像に含まれ、3つの特性のうちの1つだけを有する画像を含む他の画像は、第2の画像から除外される。
【0062】
ある実施の形態では、信頼閾値を使用して、1つまたは複数の第2の画像をフィルタリングすることができる。例えば、第1の画像が、90%の信頼スコアを有する特性「レシ
ート」に関連付けられる場合、少なくとも90%の信頼スコアを有する特性「レシート」
に関連付けられる第2の画像が選択され得る。この例では、より低い信頼スコアを有する画像は、画像が特性「レシート」に関連付けられる場合であっても、1つまたは複数の第2の画像から除外され得る。ある実施の形態では、第1の画像の画像特性に一致する特性の数と、特性に関連する信頼スコアとの組合せを使用して、1つまたは複数の第2の画像を選択することができる。ある実施の形態では、各画像特性は、1つまたは複数の第2の画像を決定するために重み付けされ得る。例えば、「タージマハル」または「ジョイス」などのラベルなどのいくつかの特性は、他の特性、例えば「屋外」より高い重みを割り当てられ得る。
【0063】
ある実施の形態では、ユーザが、画像選択に関連するユーザデータおよびユーザによって生成される画像ベースの創作物の使用の同意を提供するとき、そのようなデータは、1つまたは複数の第2の画像を選択するために使用され得る。ユーザが、例えばフォトブックなどの、花の写真を含む印刷された出版物を以前に生成した場合、花を示す1つまたは複数の第2の画像が含まれ得る。この例では、以前のフォトブックに含まれていた画像は、たとえば、ユーザが最近キャプチャされた画像を含むフォトブックを定期的に生成することをユーザデータが示す場合、除外され得る。
【0064】
別の例では、ユーザが、あるタイプの写真、たとえば、人間の顔を描写しない写真を選択する提案を以前に無視している場合、そのような画像は、1つまたは複数の第2の画像から除外され得る。別の例では、ユーザが特定の個人、例えば、家族、ペットなどの画像を含む写真コラージュを生成することをユーザデータが示す場合、その個人を示す画像は、1つまたは複数の第2の画像において選択されてもよく、その個人を描写しない画像は除外されてもよい。ある実施の形態では、たとえば、高い不鮮明さ、暗い画像、低品質画像、アーカイブ画像など、ある特性をもつ画像は、そのような画像が1つまたは複数の第1の画像に一致する特性を有する場合であっても、1つまたは複数の第2の画像から除外され得る。
【0065】
ある実施の形態では、たとえば、ユーザが画像ベースの創作物がビデオであることを示すとき、1つまたは複数の第2の画像は、他の画像ベースの創作物、たとえば、画像コラージュのために除外され得る、動きを伴うビデオクリップまたは画像を含み得る。ある実施の形態では、ビデオクリップは、非視覚パラメータ、たとえば、ビデオクリップの長さ、ビデオクリップの決定された音声部分に対するセマンティック概念またはラベルなどに基づいて選択され得る。ブロック216の後にはブロック218が続くことができる。
【0066】
ブロック218では、ユーザインターフェイスが表示させられる。たとえば、ユーザインターフェイスは、クライアントデバイス120~124のいずれかによって表示され得る。ユーザインターフェイスは、1つまたは複数の第2の画像を含み得る。例えば、ユーザインターフェイスは、例えば、画像のグリッドの表示を含むカードまたはオーバーレイとして表示されてもよい。ある実施の形態では、1つまたは複数の第2の画像は、これらの画像が提案された選択であることの表示とともに表示され得、たとえば、ユーザインタ
ーフェイスの「提案」セクションに表示され得る。1つまたは複数の第2の画像は、ユーザ選択可能である。ある実施の形態では、ユーザインターフェイスはまた、ユーザが選択可能な他の画像、たとえば、現在の時間の直前の特定の時間内にキャプチャまたは受信されて、1つまたは複数の第2の画像には含まれない最近の画像を含み得る。ある実施の形態では、他の画像は、「提案」セクションとは別個のユーザインターフェイスのセクション、たとえば、「最近」セクションにグループ化され得る。ある実施の形態では、現在選択されている画像は、ユーザインターフェイスのセクション、たとえば「選択トレイ」セクションに表示され得る。「選択トレイ」は、第1の画像およびユーザによる選択に利用できる1つまたは複数の追加の画像を含むユーザインターフェイスの他の部分とは別個であってもよい。ブロック218の後には、ブロック220が続くことができる。
【0067】
ブロック220では、さらなる画像選択が受信されたかどうかが判定される。例えば、さらなる画像選択は、第2のユーザ入力を介して受信され得る。ある実施の形態では、さらなる画像選択によって示される画像は、1つまたは複数の第2の画像のうちの少なくとも1つを含み得る。ある実施の形態では、さらなる画像選択によって示される画像は、1つまたは複数の最近の画像のうちの少なくとも1つを含み得る。さらなる画像選択が受信された場合、方法はブロック214に進む。ある実施の形態では、画像ライブラリ内の1つまたは複数の第3の画像が識別され得る。たとえば、1つまたは複数の第3の画像は、さらなる画像選択から、たとえば、1つまたは複数の第2の画像から、および/またはユ
ーザインターフェイスに表示された他の画像から、選択された画像の特性を決定することに基づいて識別され得る。
【0068】
1つまたは複数の第3の画像は、(第1のユーザ入力において選択された)第1の画像の特性と第2のユーザ入力を介して選択された画像とのマッチングによって識別され得る。たとえば、1つまたは複数の第3の画像は、第3の画像の各々が、選択された画像の特性に一致する少なくとも1つの特性、たとえば、第1の画像のうちの1つまたは複数に関連付けられ、第2の画像のうちの1つまたは複数に関連付けられる少なくとも1つの特性を有するように識別され得る。例えば、(第1のユーザ入力によって選択された)第1の画像が「ビーチにいるジョイスとアンドリュー」(例えば、ラベル「ジョイス」、「アンドリュー」、「ビーチ」に関連する)を示し、(第2のユーザ入力によって選択された)選択された画像が「ジョイスとアンドリュー」を示す場合、1つまたは複数の第3の画像を、ジョイスおよびアンドリューの両方を示す画像ライブラリ内の画像として識別することができる。この例では、第3の画像を識別しながら「ビーチ」特性は考慮されない。
【0069】
異なる実施の形態では、1つまたは複数の第3の画像は、1つまたは複数の第2の画像を選択するために使用されるものと同様の技術を使用して選択され得る。1つまたは複数の第3の画像が識別される実施の形態では、ユーザインターフェイスは、1つまたは複数の第3の画像を含めるように更新され得る。たとえば、ユーザインターフェイスを更新することは、1つまたは複数の第2の画像の代わりに、またはそれに加えて1つまたは複数の第3の画像を表示するために「提案」セクションを更新することを含み得る。ある実施の形態では、1つまたは複数の第3の画像を識別すると、「提案」セクションは、ユーザインターフェイスの他のセクション(たとえば、「最近」)より高い優先度で表示され得る。
【0070】
ある実施の形態では、画像の追加の選択を示すさらなるユーザ入力が受信され得(例えば、ブロック214~220の反復による)、それに応答して、ユーザインターフェイスは、画像ライブラリ内の画像の画像特性と、ユーザ入力によって選択された画像の画像特性とのマッチングに基づいて、追加の画像を含むように更新され得る。さらなる画像選択が受信されない場合、ブロック220の後にブロック222が続くことができる。
【0071】
ブロック222では、1つまたは複数のアクション(たとえば、オペレーション)のユーザ選択が、たとえば、ユーザインターフェイスを介して受け取られる。ユーザが選択したアクションは、ユーザが選択した画像を使用して実行される。例えば、ユーザは、選択された画像、例えば、第1のユーザ入力、第2のユーザ入力、およびもしあればその後のユーザ入力によって示される画像選択に基づいて、画像ベースの創作物(例えば、コンテンツの創作物)が生成されることを示すことができる。例えば、画像ベースの創作物は、画像コラージュ、選択された画像を例えばショートビデオクリップまたはスライドショーとして示すビデオ、選択された画像を含む画像アルバム、または選択された画像を含む、印刷された出版物、例えばフォトブックを含み得る。
【0072】
別の例では、ユーザによって選択された1つまたは複数のアクションは、選択された画像をターゲットソフトウェアアプリケーション、たとえばメッセージングアプリケーション、画像共有アプリケーション、ソーシャルネットワーキングアプリケーション、金融アプリケーションなどに提供することとすることができる。この例では、選択された画像は、例えば、アプリケーションプログラミングインターフェイス(API)を介して、ターゲットソフトウェアアプリケーションに提供される。ある実施の形態では、選択された画像は、画像をターゲットソフトウェアアプリケーションに提供する前に修正され得る(例えば、自動的に強化され、トリミングされ、ファイルサイズが縮小される等。)。
【0073】
ある実施の形態では、ユーザによって選択された1つまたは複数のアクションは、たとえば、画像ライブラリ内の画像に対する修正を実行するための、画像ライブラリアプリケーションのためのアクションであり得る。例えば、ユーザが、互いまたは他の画像の複製を含む画像を選択(例えば、全てが1つまたは複数の他の選択された画像に類似する主題を描写し、類似のメタデータに関連付けられるか、または、ライブラリ内の1つまたは複数の他の画像に類似する主題を描写する画像を選択)した場合、アクションは、複製を削除することであり得る。例えば、他の複製画像よりもスコアの低い画像特性を有する複製画像は、例えば、不鮮明さ、露出、色ノイズ、画像境界に対するオブジェクト位置などの視覚的特性に基づいて削除することができる。別の例では、ユーザが1つまたは複数の共通特性(例えば、「暗」、「非強調」である)をそれぞれ有する画像を選択する場合、アクションは、たとえば、画像フィルタを適用することによって、画像強調のためにトレーニングされた機械学習モデルを使用して画像を修正することによって等の、たとえば、画像強調技法を使用してピクセル値を修正することによる、選択された画像の自動強調を実行することなどであり得る。
【0074】
ある実施の形態では、アクションは、選択された画像をアーカイブすることであってよく、これにより、選択された画像が、画像ライブラリの画像のうちの1つまたは複数のビュー、たとえば、メインビューから隠される。例えば、選択された画像に関連するラベルは、選択された画像がアーカイブされていることを示すように更新され得る。アーカイブされた画像は、例えば、ユーザ入力を介して、アーカイブされた画像を見るためのコマンドが受信された場合に、表示され得る。ある実施の形態では、アーカイブされる画像に関連する画像メタデータまたはラベルは、画像がアーカイブされることを示すために更新され得る。そのようなメタデータまたはラベルは、たとえば、画像ライブラリ内の画像のメインビューを生成する際に、メインビューからアーカイブされた画像を除外するために使用され得る。
【0075】
ある実施の形態では、1つまたは複数のアクションは、ユーザインターフェイスに表示された提案されたアクション要素に対応するアクションを含み得る。これらの実施の形態では、提案されたアクション要素は、選択された画像、たとえば、第1の画像のうちの1つまたは複数および第2の画像のうちの1つまたは複数に基づいて決定され得る。ある実施の形態では、提案されたアクション要素に関連付けられたアクションは、選択された画
像をアーカイブすること、選択された画像を削除すること(例えば、画像ライブラリから選択された画像を除去すること、ストレージから画像を削除することなど。)、または選択された画像の自動拡張を実行することのうちの1つまたは複数を含み得る。
【0076】
例えば、選択された画像は「不鮮明な」という画像特性を有すると判定され得る。決定に基づいて、提案されたアクション要素、例えば「全ての不鮮明を削除」が表示される。ユーザが提案されたアクション要素を選択した場合、対応するアクションは、例えば、デバイスによって実行されてもよい。ある実施の形態では、選択された画像に一致する追加の画像、たとえば、ライブラリ内の他の不鮮明な画像であって、選択された画像と同じ場所またはその近くで、かつ同様の時間に撮影された他の画像を含めることができ、選択されたアクションは、ユーザ選択された画像と、選択された画像に一致する追加の画像とに対して実行される。
【0077】
方法200は、図2の様々なブロックを参照して説明されてきたが、本開示で説明する技術は、図2のブロックのいくつかを実行せずに実行され得ることを理解されたい。ある実施の形態では、図2に示されるブロックのうちの1つまたは複数が組み合わされ得る。例えば、ブロック214,216および218のうちの2つ以上が組み合わされてもよい。様々な実施の形態では、方法200のブロックのうちのいくつかは、並列に、または図2に示されるものとは異なる順序で実行され得る。ある実施の形態では、方法200は、クライアントデバイス、たとえば、クライアントデバイス120~124のうちの1つまたは複数によって実行される。ある実施の形態では、方法200は、サービスデバイス、たとえば、サーバデバイス104によって実行される。ある実施の形態では、方法200は、クライアントデバイスとサーバデバイスとの組合せによって実行される。例えば、ある実施の形態では、ブロック202,204,206,212,218および220は、クライアントデバイスによって実行され、ブロック214,216および222は、サーバデバイスによって実行される。例えば、このようなアプローチは、クライアントデバイス120が、例えば、画像をプログラム的に分析することによって画像特性を決定する能力が限られている場合、画像データを記憶する記憶容量が限られている場合などに有用であり得る。
【0078】
図3は、ある実施の形態による、画像選択提案を提供するための方法300の一例を示すフロー図である。ある実施の形態では、方法300は、たとえば、図1に示されるように、サーバシステム102上で実施され得る。ある実施の形態では、方法300の一部または全部は、図1に示されるように、1つまたは複数のクライアントデバイス120,122,124または126上で、1つまたは複数のサーバデバイス上で、および/または
サーバデバイスとクライアントデバイスとの両方上で実施され得る。説明される例では、実施システムは、1つまたは複数のデジタルプロセッサまたは処理回路(「プロセッサ」)と、1つまたは複数の記憶デバイス(例えば、データベース106または他の記憶装置)とを含む。ある実施の形態では、1つまたは複数のサーバおよび/またはクライアント
の異なる構成要素は、方法300の異なるブロックまたは他の部分を実行することができる。いくつかの例では、第1のデバイスは、方法300のブロックを実行するものとして説明される。ある実施の形態は、結果またはデータを第1のデバイスに送信することができる1つまたは複数の他のデバイス(例えば、他のクライアントデバイスまたはサーバデバイス)によって実行される方法300の1つまたは複数のブロックを有することができる。
【0079】
ある実施の形態では、方法300または当該方法の一部は、システムによって自動的に開始され得る。ある実施の形態では、実施システムは第1のデバイスである。例えば、本方法(またはその部分)は、定期的に実行することができ、あるいは1つまたは複数の特定のイベントまたは条件、例えば、アプリケーションがユーザによって開始されること、
画像がユーザによって選択されること、および/または本方法によって読み取られる設定
において指定され得る1つまたは複数の他の条件が発生することに基づいて実行することができる。ある実施の形態では、そのような条件は、ユーザの格納されたカスタム選好においてユーザによって指定され得る。
【0080】
一例では、クライアントデバイスは、カメラ、携帯電話、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス、または、ユーザによるクライアントデバイスへのコンテンツ入力(たとえば、画像キャプチャ)およびユーザ入力(例えば、タッチスクリーンを使用すること、ジェスチャを使用すること、マウスまたは他のポインティングデバイスを使用すること、キーボードを使用することなど。)を受信することができ、方法300を実行することができる他のクライアントデバイスとすることができる。別の例では、クライアント装置またはサーバ装置が方法300を実行することができる。ある実施の形態は、ユーザ入力に基づいて方法300を開始することができる。ユーザ(例えば、オペレータまたはエンドユーザ)は、例えば、ユーザインターフェイス、例えば、アプリケーションユーザインターフェイスまたは他のユーザインターフェイスから方法300の開始を選択してもよい。ある実施の形態では、方法300は、クライアントデバイスによって実施され得る。ある実施の形態では、方法300は、サーバデバイスによって実施され得る。
【0081】
ブロック302において、方法300の実施において、ユーザデータを使用するためにユーザの同意(例えば、ユーザ許可)が得られたかどうかがチェックされる。たとえば、ユーザデータは、クライアントデバイスを使用してユーザによってキャプチャされた画像、たとえば、クライアントデバイスを使用してユーザによって記憶またはアクセスされた画像、画像メタデータ、画像共有アプリケーションの使用に関連するユーザデータ、メッセージングアプリケーションの使用に関連するユーザデータ、金融アプリケーションの使用に関連するユーザデータ、ソーシャルネットワーキングアプリケーションの使用に関連するユーザデータ、ユーザ選好、ユーザバイオメトリック情報、ユーザ特性(同一性、名前、年齢、性別、職業など。)、ユーザのソーシャルネットワークおよび連絡先に関する情報、ソーシャルおよび他の種類のアクションおよびアクティビティ、ユーザによって作成または提出されたコンテンツ、格付け、および意見、ユーザの現在位置、履歴ユーザデータ、ユーザによって生成、受信、および/またはアクセスされた画像、ユーザによって
閲覧または共有された画像などを含み得る。本明細書で説明する方法の1つまたは複数のブロックは、ある実施の形態では、そのようなユーザデータを使用し得る。
【0082】
方法300においてユーザデータが使用され得る関連ユーザからユーザ同意が得られた場合、ブロック304において、本明細書の方法のブロックは、それらのブロックに関して記載されたようなユーザデータの可能な使用を用いて実施され得ると判定され、方法はブロック312に続く。ユーザの同意が取得されていない場合、ブロックがユーザデータを使用せずに実施されるべきであるとブロック306において決定され、方法はブロック312に続く。ある実施の形態では、ユーザの同意が得られていない場合、ブロックは、ユーザデータを使用せずに、合成データおよび/または汎用データもしくは公にアクセス
可能かつ公的に使用可能なデータを用いて実施される。ユーザの同意が取得されていない場合、方法300は実行されない。
【0083】
方法300のブロック312において、ターゲットソフトウェアアプリケーションを示すコンテキスト情報が決定される。たとえば、方法300が、ユーザが画像ベースの創作物、たとえば、画像アルバム、画像コラージュ、ビデオ、または印刷された出版物を生成することを可能にする画像ライブラリアプリケーションの一部として実施されるとき、コンテキスト情報は、画像創作物のタイプを含み得る。
【0084】
別の例では、方法300が、たとえば、アプリケーションプログラミングインターフェイス(API)を介して他のアプリケーションとの対話をサポートする画像ライブラリアプリケーションの一部として実施されるとき、コンテキスト情報を決定することは、画像ライブラリアプリケーションを呼び出すアプリケーションのアプリケーションタイプ、たとえば、画像共有アプリケーション(例えば、スタンドアロン型画像共有アプリケーション、ソーシャルネットワーキングアプリケーションなど。)、金融アプリケーション(例えば、経費管理アプリケーション、請求書発行アプリケーションなど。)、メッセージアプリケーション(例えば、チャットまたはインスタントメッセージングアプリケーション、電子メールアプリケーション、コラボレーションアプリケーションなど。)を決定することを含む。本例では、画像ライブラリアプリケーションを呼び出すアプリケーションが、ターゲットソフトウェアと呼ばれる。
【0085】
さらに、ある実施の形態では、コンテキスト情報を決定することは、ターゲットソフトウェアアプリケーションから、選択されるべきいくつかの画像、たとえば、1つの画像、2つの画像などを受信することを含み得る。別の例では、そのようなコンテキスト情報は、選択されるべき画像のタイプ、たとえば、動きを伴う画像(たとえば、ビデオクリップ)、特定のアスペクト比および/または向きの画像(例えば、正方形、縦向き、横向きな
ど。)、静止画像、動画像などを含み得る。
【0086】
別の例では、ユーザの同意が得られた場合、コンテキスト情報を決定することは、メッセージング会話(たとえば、電子メール受信者)における参加者の識別情報(例えば、ユーザ名、ログインID等のユーザ識別子。)、画像共有アプリケーションを介して共有されている以前の画像の特性(例えば、風景画像、食品画像、自己画像など。)などを受信することを含み得る。別の例では、コンテキスト情報は、例えば経費報告を提出する、請求書を生成するなど、金融アプリケーションなどのターゲットソフトウェアアプリケーションを使用して実行されるユーザ活動を含み得る。
【0087】
ある実施の形態では、ターゲットソフトウェアアプリケーションは、APIを介してコンテキスト情報を提供することができる。ある実施の形態では、ユーザの同意が得られた場合、コンテキスト情報は、1つまたは複数の画像特性、たとえば、ユーザの画像ライブラリ内の画像と関連付けられた画像特性とマッチすることができる「自己画像」、「レシート」、「休暇」などとして提供され得る。そのような画像特性は、ユーザの同意が得られた場合、画像コンテンツ(たとえば、描写された画像特徴)および/または画像メタデ
ータ(例えば、キャプチャの時間、キャプチャの位置、キャプチャしたカメラの属性および設定など。)に基づくことができる。ある実施の形態では、コンテキスト情報は、セマンティック概念、たとえば、「経費報告」、「アンドリューとのチャット会話」などとして提供され得る。
【0088】
ユーザが同意を提供するとき、コンテキスト情報は、ターゲットソフトウェアアプリケーションからのアプリケーションコンテキストを含み得る。例えば、アプリケーションコンテキストは、メッセージングアプリケーションを介して行われる会話に関連する会話またはセマンティック概念の概要、金融アプリケーションにおける準備中の経費報告の期間などを含み得る。例えば、アプリケーションコンテキストは、「この会話は、バリにおける休暇に関する」「2017年11月の経費報告」等を含むことができる。ブロック312の後にはブロック314が続くことができる。
【0089】
ブロック314では、1つまたは複数の第1の画像がコンテキスト情報に基づいて識別される。例えば、第1の画像は、コンテキスト情報を画像ライブラリ内の画像の画像特性とマッチングすることに基づくことができる。ある実施の形態では、マッチングは、ターゲットアプリケーションのアプリケーションタイプに基づいてもよい。例えば、ブロック
314の前に、特定の画像特性を特定の種類のアプリケーションに関連付けることができる。例えば、アプリケーションタイプが「財務アプリケーション」である場合、画像が「レシート」、「文書」、「スクリーンショット」などであることを示すラベルに関連付けられている画像は、、1つまたは複数の第1の画像として選択されてもよく、他の特性(例えば、ラベル)を有する画像、例えば、「写真」、「映像」等は除外され得る。
【0090】
ある実施の形態では、第1の画像は、コンテキスト情報内で指定された画像特性および/またはセマンティック概念を画像ライブラリ内の画像の画像特性にマッチングさせるこ
とに基づくことができる。たとえば、アプリケーションタイプがメッセージングアプリケーションであり、コンテキスト情報がメッセージング会話における参加者の識別情報を含み、たとえば、コンテキスト情報が、メッセージングアプリケーションによって提供されるチャット会話がユーザアンドリューおよびジョイスを含むことを指定する場合、アンドリューおよびジョイスのうちの少なくとも1つを示す画像が、第1の画像として選択され得る。
【0091】
別の例では、アプリケーションコンテキストが、メッセージングアプリケーションによって提供されるチャット会話はバリにおける休暇についてであることを指定する場合、1つまたは複数のセマンティック概念が、アプリケーションコンテキストに基づいて決定される。例えば、セマンティック概念は、「休暇」、「バリ」、「ビーチ」、「インドネシア」、「寺」等を含むことができる。アプリケーションコンテキストから決定されるか、またはアプリケーションコンテキスト内で指定されたセマンティック概念に関連付けられる画像は、第1の画像として選択され得る。別の例では、コンテキスト情報が2017年11月の経費報告を指定する場合、2017年11月に対応する関連したタイムスタンプを有するレシートの画像を第1の画像として選択することができる。ブロック314の後には、ブロック316が続くことができる。
【0092】
ブロック316では、第1の画像を含むユーザインターフェイスが表示される。たとえば、ユーザインターフェイスは、クライアントデバイス120~124のいずれかによって表示され得る。ユーザインターフェイスは、ブロック218を参照して上述したユーザインターフェイスと同様に、ユーザが第1の画像のうちの1つまたは複数を選択することを可能にする。ブロック316の後には、ブロック318が続くことができる。
【0093】
ブロック318では、表示された画像(たとえば、第1の画像)のうちの1つまたは複数のユーザの選択が受け取られる。例えば、ブロック318は、図2のブロック212と同様であり得る。ブロック318の後には、ブロック320が続くことができる。
【0094】
ブロック320では、ブロック318で選択された画像の画像特性が、例えば、上述のブロック214と同様の方法で決定される。ブロック320の後には、ブロック322が続くことができる。
【0095】
ブロック322では、1つまたは複数の追加の画像が識別される。ある実施の形態では、追加の画像は、ブロック320で決定された画像特性に基づいて識別され得る。例えば、ユーザ選択がラベル「バリ」および「アンドリュー」に関連付けられた画像に対応する場合、ラベルのうちの少なくとも1つを有する追加画像が識別される。ある実施の形態では、追加の画像を識別することは、たとえば、上述のブロック314と同様に、ブロック320で決定された画像特性およびコンテキスト情報に基づく。ブロック322の後にブロック324が続くことができる。
【0096】
ブロック324において、ユーザインターフェイスは、1つまたは複数の追加の画像を含むように更新される。例えば、1つまたは複数の追加画像は、第1画像の代わりに、ま
たは第1画像に加えて表示されてもよい。ある実施の形態では、更新されたユーザインターフェイスは、ユーザによって選択された画像を含むセクション、たとえば「選択トレイ」セクションを含み得る。「選択トレイ」は、第1の画像およびユーザによる選択に利用できる1つまたは複数の追加の画像を含む、ユーザインターフェイスの他の部分とは別個であってもよい。他の特徴は、図2のブロック218に関して説明したものと同様に提供することができる。ブロック324の後には、ブロック326が続くことができる。
【0097】
ブロック326では、さらなる画像選択がユーザから、たとえば更新されたユーザインターフェイスに表示された画像から受信されたかどうかが判定される。さらなる画像選択が受信された場合、方法はブロック320に進み、ユーザによって選択された追加画像の画像特性が決定される。ブロック320~326を繰り返して、追加の画像選択提案をユーザに提供することができる。さらなる画像選択が受信されない場合、方法はブロック328に進む。
【0098】
ブロック328では、ユーザによって選択された画像が、ターゲットソフトウェアアプリケーションに提供される。例えば、ターゲットソフトウェアアプリケーションが画像ライブラリアプリケーションである場合、選択された画像は、画像ベースの創作物に利用されるべき画像として提供されてもよい。別の例では、ターゲットソフトウェアアプリケーションが画像共有またはメッセージングアプリケーションである場合、選択された画像は、画像が画像共有またはメッセージングアプリケーションを介して1つまたは複数の他のデバイスに(たとえば、ネットワークを介して)送信するために利用可能となるように提供され得る。ある実施の形態では、選択された画像は、画像をターゲットソフトウェアアプリケーションに提供する前に、処理され、たとえば、自動的に強調され、トリミングされ、圧縮され、異なるフォーマットに変換され得る。ある実施の形態では、画像の処理は、ターゲットソフトウェアアプリケーションから受信されたコンテキスト情報に基づいてもよい。
【0099】
方法300は、図3の様々なブロックを参照して説明されてきたが、本開示で説明する技術は、図3のブロックのいくつかを実行せずに実行され得ることを理解されたい。ある実施の形態では、図3に示されるブロックのうちの1つまたは複数が組み合わされ得る。例えば、ブロック314,316および318のうちの2つ以上が組み合わされてもよい。別の例では、ブロック320,322および324のうちの2つ以上が組み合わされてもよい。様々な実施の形態では、方法300のブロックのうちのいくつかは、並列に、または図3に示されるものとは異なる順序で実行され得る。
【0100】
ある実施の形態では、方法300は、クライアントデバイス、たとえば、クライアントデバイス120~124のうちの1つまたは複数によって実行される。ある実施の形態では、方法300は、サービスデバイス、たとえば、サーバデバイス104によって実行される。ある実施の形態では、方法300は、クライアントデバイスとサーバデバイスとの組合せによって実行される。例えば、ある実施の形態では、ブロック302,304,306,312,318,326および328は、クライアントデバイスによって実行され、ブロック314,316,320,322および324は、サーバデバイスによって実行される。例えば、このようなアプローチは、クライアントデバイス120が、例えば、画像をプログラム的に分析することによって画像特性を決定する能力が限られている場合、画像データを記憶する記憶容量が限られている場合などに有用であり得る。
【0101】
図4は、ある実施の形態による、画像選択提案を含む例示的なユーザインターフェイス400の概略図である。様々な実施の形態では、ユーザインターフェイス400は、ディスプレイデバイスによって、たとえば、ある実施の形態では、図1のクライアントデバイス120、122、124および/または126の表示画面によって、またはサーバシス
テム102によって表示され得る。
【0102】
図4に示されるように、ユーザの画像ライブラリの一部分がユーザインターフェイスに表示される。図4に示される例では、画像ライブラリからの9つの画像が示されている。図4は、1行当たり3つの正方形画像を有する画像の3つの行を示すが、利用可能な画面空間に基づいて、グリッド内の任意の数の行および列を使用することができる。さらに、異なる実施の形態は、他の構成または配列で画像を表示してもよい。ある実施の形態では、ライブラリからのより多いまたはより少ない画像が示され得る。ある実施の形態では、画像は、画像に関連付けられたタイムスタンプに基づいて、特定の順序、たとえば、時系列の逆の順序で編成され得る。
【0103】
図4に示される例では、ユーザは、画像上のチェックマーク402によって示されるように、最上段の行の最も左の画像を選択した。図4から分かるように、ユーザによって選択された画像(例えば、第1の画像)は、写真ID(「Jane Doe(身元不明の女性の仮称)」)である。本明細書で説明する技術を使用して、ユーザ選択された画像に基づく1つまたは複数の提案された画像選択(たとえば、第2の画像)がユーザインターフェイスに表示される。例えば、提案された画像選択は、ユーザインターフェイス内の3つの他の画像上の対応するチェックマーク404,406および408によって示される。提案された画像選択は、写真ID(XYZ社のJohn Doe(身元不明の男性の仮称))の画像およびレシートの2つの画像に対応する。この例における提案された画像選択は、第1の画像(例えば、「文書」、「アイデンティティカード」)の画像特性を画像ライブラリ内の他の画像のものと一致させることに基づく。
【0104】
ユーザインターフェイス400は、提案されたアクション要素410をさらに示す。図4に示される例では、提案されるアクションは、「文書およびレシートを選択する」ことである。ユーザが提案されたアクション要素410を選択すると、文書かつレシートであるユーザの画像ライブラリからの他の画像が、関連する画像特性に基づいて自動的に選択される。例えば、自動的に選択された画像は、そのような画像がスクロールされるか、またはそうでなければユーザインターフェイス400のビューに表示されるようにユーザ入力を介して命令される場合、チェックマーク404,406および408と同様のチェックマークとともに表示され得る。ある実施の形態では、そのような自動的に選択された画像は、画像ライブラリ内の画像の表示とは別個のユーザインターフェイスの表示領域に表示され得る。ある実施の形態では、他のまたは追加のアクション、たとえば、「選択画像をアーカイブ」、「選択画像を自動強化」、「選択画像を削除」などは、提案されたアクション要素内に示され得る。
【0105】
ある実施の形態では、提案されたアクションは、画像特性に基づいてよく、たとえば、異なる特定の提案されたアクションを、それぞれの特定の画像特性に関連付けることができる。例えば、ユーザが不鮮明な画像を選択した場合、提案されたアクションは、画像を削除することであり得る。別の例では、ユーザが暗い画像を選択した場合、提案されたアクションは、輝度またはコントラスト強調を適用することであり得る。ある実施の形態では、提案されるアクションは、複合アクション、たとえば「画像を選択する、画像フィルタを適用する、およびメッセージングアプリケーションを介して画像を共有する」であり得る。ユーザが提案されたアクション要素410を選択すると、対応するアクションが自動的に実行される。
【0106】
ユーザインターフェイス400は、ユーザが、メモリ、処理リソース、および電力を含むデバイスリソースの削減された労力および削減された消費で画像を選択することを可能にする。例えば、ユーザがデバイス上で多くのスクロールおよび検索操作で手動で各ぼかし画像を選択しなければならない代わりに、ユーザインターフェイスは、ユーザが、単純
かつ低減されたデバイス操作で提示された提案された選択を承認することを可能にし得る。さらに、ユーザインターフェイス400に表示されないが、ユーザが選択した画像と一致する特性を有する画像ライブラリ内の他の画像は、ユーザが画像をスクロールし、各画像を手動で選択することなく選択することができる。
【0107】
図5Aは、ある実施の形態による、画像選択提案を提供する例示的なユーザインターフェイス500の概略図である。様々な実施の形態では、ユーザインターフェイス500は、ディスプレイデバイスによって、たとえば、ある実施の形態では、図1のクライアントデバイス120、122、124および/または126もしくはサーバシステム102の
表示画面によって表示され得る。
【0108】
図5Aに示すように、ユーザインターフェイス500は、ユーザが選択した画像502を含む選択トレイと、追加の画像を選択してトレイに追加できることを示す2つのブランクスポットとを含む。ユーザインターフェイス500は、ユーザが選択することができる画像を含む。例えば、ユーザは、ユーザインターフェイスの「最近」セクション(504)から1つまたは複数の最近の画像を選択することができる。ある実施の形態では、「最近」セクション内の画像は、ユーザの画像ライブラリ内の画像に関連するキャプチャタイムスタンプに基づいて、時間の降順に編成され得る。
【0109】
ユーザインターフェイス500は、本明細書で説明する技術を使用して決定される提案された画像選択を含む提案506をさらに含む。図5に示される例では、提案された画像選択は、「提案」カードの形態で表示され、「最近」セクション504の上に重ねられる。異なる実施の形態では、提案された画像選択は、ユーザインターフェイスの異なるセクションに表示されてもよく、チェックマークまたは他の視覚的インジケータを使用して、提案された画像選択を示す等してもよい。ある実施の形態では、提案された画像選択は、ユーザインターフェイスの優先セクションに、たとえば、選択トレイの近くに表示され得る。
【0110】
図5Aに示される例では、ユーザは花の画像502を選択した。ユーザ選択に基づいて、画像502の1つまたは複数の特性に一致する特性を有するユーザの画像ライブラリ内の他の画像が提案506に含まれる。例えば、画像502に関連付けられる位置と同様の位置でキャプチャされた花の他の画像、例えば、画像512,514および516が表示されてもよい。図5に示される例では、マッチング特性に基づく要約「森林の小道にある花」が、提案カード内のセクションヘッダ510として示されている。ヘッダ「森林の小道の友人」(520)を有する第2のセクションは、画像522,524および526の追加の画像提案を含む。追加の画像提案は、関連付けられた場所が「森林の小道」であることに基づく。異なる実施の形態では、任意の数の画像提案が提供され得る。ユーザインターフェイス500は、ユーザが、最近セクション504から、および/または提案カー
ド506から1つまたは複数の画像を選択することを可能にする。
【0111】
ある実施の形態では、画像提案は、ユーザによってすでに選択された画像、たとえば、画像502との一致の程度に基づいて、ユーザインターフェイスにおいて編成(たとえば、グループ化)され得る。例えば、画像512~516は、選択された画像502と同様の主題を含み、森林の小道でキャプチャされているので、提案カード506の第1の部分に示される。画像522~526は、画像は森林の小道上でキャプチャされたが、画像は花を描いておらず選択された画像502とは異なるので、提案カード506の第2の部分に示される。
【0112】
図5Bは、ある実施の形態による、画像選択提案を提供する例示的なユーザインターフェイス530の概略図である。例えば、ユーザインターフェイス530は、ユーザがユー
ザインターフェイス500を介して画像522および512を選択した後に表示することができる。追加の選択画像は、選択トレイの一部として示されている。画像522および512は、提案カードから除去される。追加の画像528は、例えば、画像ライブラリ内の画像の画像特性を選択された画像502,512および522とマッチングさせることに基づいて、提案カードに追加される。
【0113】
図5Cは、ある実施の形態による、画像選択提案を提供する例示的なユーザインターフェイス540の概略図である。図5Cに示されるように、画像ベースの創作物、たとえばピクチャコラージュ542は、ユーザによって選択された画像、たとえば画像502,512および522に基づいて生成された。ユーザインターフェイス540は、1つまたは複数の提案された画像を有する提案カードを含む。たとえば、ユーザインターフェイス540は、ユーザが、たとえば、提案カードからピクチャコラージュに画像をドラッグおよびドロップすることによって、提案された画像の1つまたは複数を選択し、ピクチャコラージュに画像を追加することを可能にし得る。
【0114】
図6は、本明細書で説明する1つまたは複数の特徴を実施するために使用され得る例示的なデバイス600のブロック図である。一例では、デバイス600は、クライアントデバイス、たとえば、図1に示されるクライアントデバイス115のいずれかを実施するために使用され得る。あるいは、デバイス600は、サーバデバイス、例えば、サーバ101を実施することができる。ある実施の形態では、デバイス600は、クライアントデバイス、サーバデバイス、またはクライアントデバイスとサーバデバイスの両方を実施するために使用され得る。デバイス600は、任意の適切なコンピュータシステム、サーバ、または上述の他の電子もしくはハードウェアデバイスであり得る。
【0115】
本明細書で説明する1つまたは複数の方法は、任意のタイプのコンピューティングデバイス上で実行され得るスタンドアローンプログラム、ウェブブラウザ上で実行されるプログラム、モバイルコンピューティングデバイス(例えば、携帯電話、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス(ウォッチ、アームバンド、ジュエリー、ヘッドウェア、仮想現実ゴーグルまたはメガネ、拡張現実ゴーグルまたはメガネ、ヘッドマウントディスプレイなど)、ラップトップコンピュータなど)上で実行されるモバイルアプリケーション(「app」)で実行され得る。一例では、クライアント/サーバアーキテクチャを使用することができ、例えば、(クライアントデバイスとして)モバイルコンピューティングデバイスは、ユーザ入力データをサーバデバイスに送信し、出力のための(例えば、表示のための)最終出力データをサーバから受信する。別の例では、すべての計算は、モバイルコンピューティングデバイス上のモバイルアプリ(および/または他のア
プリ)内で実行することができる。別の例では、モバイルコンピューティングデバイスと1つまたは複数のサーバデバイスとの間で計算を分割することができる。
【0116】
ある実施の形態では、デバイス600は、プロセッサ602と、メモリ604と、入出力(I/O)インターフェイス606とを含む。プロセッサ602は、プログラムコードを実行し、デバイス600の基本動作を制御する1つまたは複数のプロセッサおよび/ま
たは処理回路であり得る。「プロセッサ」は、データ、信号、または他の情報を処理する任意の適切なハードウェアシステム、メカニズム、またはコンポーネントを含む。プロセッサは、(例えば、シングルコア、デュアルコア、またはマルチコア構成にある)1つまたは複数のコアを有する汎用中央処理ユニット(CPU)、(たとえば、マルチプロセッサ構成における)複数の処理ユニット、グラフィック処理ユニット(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、複合プログラマブルロジックデバイス(CPLD)、機能を達成するための専用回路、ニューラルネットワークモデルベースの処理を実施するための専用プロセッサ、ニューラル回路、行列計算(例えば、行列乗算)のために最適化されたプロセッサ、または他のシステム
、を備えたシステムを含み得る。ある実施の形態では、プロセッサ602は、ニューラルネットワーク処理を実施する1つまたは複数のコプロセッサを含み得る。ある実施の形態では、プロセッサ602は、確率的出力を生成するためにデータを処理するプロセッサであり得、たとえば、プロセッサ602によって生成される出力は、不正確なものであり得、または予想される出力からの範囲内において正確であり得る。処理は、特定の地理的位置に限定される必要はなく、または時間的制限を有する必要はない。例えば、プロセッサは、「リアルタイム」、「オフライン」、「バッチモード」等でその機能を実行することができる。処理の部分は、異なる(または同じ)処理システムによって、異なる時間および異なる場所で実行されてもよい。コンピュータは、メモリと通信する任意のプロセッサであり得る。
【0117】
メモリ604は、典型的には、プロセッサ602によるアクセスのためにデバイス600内に提供され、プロセッサによる実行のための命令を記憶するのに適した、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、電気的消去可能読み取り専用メモリ(EEPROM)、フラッシュメモリなど、任意の適切なプロセッサ可読記憶媒体であり得る。また、プロセッサ602から分離して、および/またはプロセッサ602と
一体化して配置される。メモリ604は、オペレーティングシステム608、機械学習アプリケーション630、他のアプリケーション612、およびアプリケーションデータ614を含む、プロセッサ602によってサーバデバイス600上で動作するソフトウェアを記憶することができる。他のアプリケーション612は、データ表示エンジン、ウェブホスティングエンジン、画像表示エンジン、通知エンジン、ソーシャルネットワーキングエンジンなどのアプリケーションを含み得る。ある実施の形態では、機械学習アプリケーション630および他のアプリケーション612は、それぞれ、プロセッサ602が本明細書で説明する機能、たとえば、図2および図3の方法の一部またはすべてを実行することを可能にする命令を含み得る。
【0118】
他のアプリケーション612は、例えば、画像編集アプリケーション、メディアディスプレイアプリケーション、通信アプリケーション、ウェブホスティングエンジンまたはアプリケーション、マッピングアプリケーション、メディア共有アプリケーション等を含むことができる。本明細書で開示される1つまたは複数の方法は、いくつかの環境およびプラットフォームにおいて、たとえば、任意のタイプのコンピューティングデバイス上で実行することができるスタンドアロンコンピュータプログラムとして、ウェブページを有するウェブアプリケーションとして、モバイルコンピューティングデバイス上で実行されるモバイルアプリケーション(「app」)などとして動作することができる。
【0119】
様々な実施の形態では、機械学習アプリケーションは、ベイズ分類器、サポートベクターマシン、ニューラルネットワーク、または他の学習技法を利用することができる。ある実施の形態では、機械学習アプリケーション630は、トレーニングされたモデル634、推論エンジン636、およびデータ632を含み得る。ある実施の形態では、データ632は、トレーニングデータ、たとえば、トレーニングされたモデル634を生成するために使用されるデータを含み得る。たとえば、トレーニングデータは、テキスト、画像、オーディオ、ビデオなどの任意のタイプのデータを含み得る。トレーニングデータは、任意のソース、例えば、トレーニングのために特にマークされたデータレポジトリ、機械学習のためのトレーニングデータとして使用するために許可が提供されたデータなどから取得することができる。1人または複数のユーザが、機械学習モデル、たとえばトレーニングされたモデル634をトレーニングするためのそれぞれのユーザデータの使用を許可する実施の形態では、トレーニングデータは、そのようなユーザデータを含み得る。複数ユーザがそれぞれのユーザデータの使用を許可する実施の形態では、データ632は、画像(例えば、写真または他のユーザが生成した画像)、通信(例えば、eメール、テキスト
メッセージ、音声、ビデオ等のチャットデータ)、文書(例えば、スプレッドシート、テ
キスト文書、プレゼンテーションなど。)のような許可されたデータを含み得る。
【0120】
ある実施の形態において、データ632は、地図データ、画像データ(例えば、衛星画像、オーバーヘッド画像など。)、ゲームデータ等のような収集したデータを含み得る。ある実施の形態では、トレーニングデータは、トレーニングされるコンテキストにおけるユーザ入力または活動に基づかないデータ、たとえば、シミュレートされた会話、コンピュータ生成画像などから生成されるデータなどのように、トレーニングの目的のために生成される合成データを含み得る。ある実施の形態では、機械学習アプリケーション630は、データ632を除外する。たとえば、これらの実施の形態では、トレーニングされたモデル634は、たとえば、異なるデバイス上で生成され、機械学習アプリケーション630の一部として提供され得る。様々な実施の形態では、トレーニングされたモデル634は、モデル構造または形態と、関連付けられた重みとを含むデータファイルとして提供され得る。推論エンジン636は、訓練されたモデル634のためのデータファイルを読み取り、訓練されたモデル634において指定されたモデル構造または形式に基づいてノード接続性、層、および重みを有するニューラルネットワークを実施することができる。
【0121】
機械学習アプリケーション630は、トレーニングされたモデル634も含む。ある実施の形態では、トレーニングされたモデルは、1つまたは複数のモデル形態または構造を含み得る。例えば、モデル形式または構造は、線形ネットワーク、複数の層(例えば、入力層と出力層との間の「隠れた層」であり、各層は線形ネットワークである)を実施するディープニューラルネットワーク、畳み込みニューラルネットワーク(例えば、入力データを複数の部分またはタイルに分割し、1つまたは複数のニューラルネットワーク層を使用して各タイルを別々に処理し、各タイルの処理から得られた結果を集約するネットワーク)、シーケンス間ニューラルネットワーク(例えば、文中の単語、ビデオ中のフレームなどの順次データを入力として取り、結果シーケンスを出力として生成するネットワーク)など、任意のタイプのニューラルネットワークを含み得る。モデル形式または構造は、様々なノード間の接続性およびノードの層への編成を指定することができる。たとえば、第1の層(たとえば、入力層)のノードは、データを入力データ632またはアプリケーションデータ614として受信することができる。そのようなデータは、例えば、トレーニングされたモデルが画像分析に使用される場合、ノード当たり1つまたは複数のピクセルを含むことができる。後続の中間層は、モデル形式または構造において指定された接続性ごとに、前の層のノードの出力を入力として受信してもよい。これらの層は隠し層と呼ばれることもある。最終層(例えば、出力層)は、機械学習アプリケーションの出力を生成する。例えば、出力は、特定のトレーニングされたモデルに応じて、画像に対するラベルのセット、画像の他の画像(例えば、画像の特徴ベクトル)との比較を可能にする画像の表現、入力文に応じた出力文、入力データの1つまたは複数のカテゴリなどとすることができる。ある実施の形態では、モデル形式または構造はまた、各層中のノードの数および/またはタイプを指定する。
【0122】
異なる実施の形態では、トレーニングされたモデル634は、モデル構造または形態ごとに層に配列される複数のノードを含み得る。ある実施の形態では、ノードは、たとえば、1単位の入力を処理して1単位の出力を生成するように構成された、メモリを有さない計算ノードであり得る。ノードによって実行される計算は、例えば、複数のノード入力の各々に重みを掛けること、重み付き和を得ること、およびノード出力を生成するためにバイアスまたは切片値で重み付き和を調整することを含み得る。ある実施の形態では、ノードによって実行される計算はまた、ステップ/アクティブ化関数を調整された加重和に適
用することを含み得る。ある実施の形態では、ステップ/アクティブ化関数は、非線形関
数であり得る。様々な実施の形態では、そのような計算は、行列乗算などの演算を含み得る。ある実施の形態では、複数のノードによる計算は、たとえば、マルチコアプロセッサの複数のプロセッサコアを使用して、GPUの個々の処理ユニットを使用して、または専
用ニューラル回路を使用して、並列に実行され得る。ある実施の形態では、ノードはメモリを含んでもよく、たとえば、後続の入力を処理する際に1つまたは複数の以前の入力を記憶し使用することができる。例えば、メモリを有するノードは、長短記憶(LSTM)ノードを含み得る。LSTMノードは、ノードが有限状態機械(FSM)のように動作することを可能にする「状態」を維持するためにメモリを使用することができる。そのようなノードを有するモデルは、逐次データ、例えば、文または段落の単語、ビデオ、スピーチまたは他のオーディオのフレームなどを処理する際に有用であり得る。
【0123】
ある実施の形態では、トレーニングされたモデル634は、個々のノードのための埋め込みまたは重みを含み得る。例えば、モデルは、モデル形式または構造によって指定された層に編成された複数のノードとして開始され得る。初期化時に、それぞれの重みを、モデル形式ごとに接続されるノード、例えばニューラルネットワークの連続する階層のノードの各対の接続に適用することができる。例えば、各重みはランダムに割り当てられてもよく、デフォルト値に初期化されてもよい。次いで、モデルを、例えばデータ632を用いてトレーニングして、結果を生成してもよい。
【0124】
例えば、トレーニングは、教師付き学習技術を適用することを含み得る。教師付き学習では、トレーニングデータは、複数の入力(例えば、画像のセット)と、各入力に対する対応する予想出力(例えば、各画像に対する1つまたは複数のラベル)とを含むことができる。モデルの出力と予想される出力との比較に基づいて、重みの値は、例えば、同様の入力が与えられた場合にモデルが予想される出力を生成する確率を増加させるように、自動的に調整される。
【0125】
ある実施の形態では、トレーニングは、教師なし学習技法を適用することを含み得る。教師なし学習では、入力データだけが提供されてもよく、モデルは、例えば入力データを複数のグループにクラスタ化するために、データを区別するようにトレーニングされてもよく、各グループは曲がりなりにも、類似する入力データを含む。例えば、モデルは、抽象画像(例えば、合成画像、人が描画した画像等である。)を自然画像(例えば写真)から区別するように、画像を区別するようにトレーニングされてもよい。モデルは、画像コンテンツデータおよび/または画像メタデータに基づいて1つまたは複数の画像特性を決
定するようにトレーニングされ得る。決定された画像特性は、画像ラベルおよび/または
セマンティック概念を含み得る。
【0126】
別の例では、教師なし学習を使用してトレーニングされるモデルは、入力文における単語の使用に基づいて単語をクラスタ化してもよい。ある実施の形態では、教師なし学習を使用して、たとえば、機械学習アプリケーション630によって使用され得る知識表現を生成することができる。様々な実施の形態では、トレーニングされたモデルは、モデル構造に対応する1組の重みまたは埋め込みを含む。データ632が省略される実施の形態では、機械学習アプリケーション630は、たとえば機械学習アプリケーション630の開発者によって、サードパーティによってなど、以前のトレーニングに基づくトレーニングされたモデル634を含み得る。ある実施の形態では、トレーニングされたモデル634は、固定された、たとえば、重みを提供するサーバからダウンロードされる重みのセットを含み得る。
【0127】
機械学習アプリケーション630はまた、推論エンジン636を含む。推論エンジン636は、トレーニングされたモデル634をアプリケーションデータ614などのデータに適用して推論を提供するように構成される。ある実施の形態では、推論エンジン636は、プロセッサ602によって実行されるソフトウェアコードを含み得る。ある実施の形態では、推論エンジン636は、プロセッサ602がトレーニングされたモデルを適用することを可能にする回路構成(例えば、プログラマブルプロセッサ用、フィールドプログ
ラマブルゲートアレイ(FPGA)用など。)を指定することができる。ある実施の形態では、推論エンジン636は、ソフトウェア命令、ハードウェア命令、または組合せを含み得る。ある実施の形態では、推論エンジン636は、オペレーティングシステム608および/または他のアプリケーション612によって使用されて推論エンジン636を呼
び出し、たとえば、トレーニングされたモデル634をアプリケーションデータ614に適用して推論を生成することができるアプリケーションプログラミングインターフェイス(API)を提供し得る。
【0128】
機械学習アプリケーション630は、いくつかの技術的利点を提供することができる。例えば、トレーニングされたモデル634が教師なし学習に基づいて生成されるとき、トレーニングされたモデル634は、入力データ、例えば、アプリケーションデータ614から知識表現(例えば、数値表現)を生成するために推論エンジン636によって適用され得る。例えば、画像分析のためにトレーニングされたモデルは、入力画像(例えば、10MB)より小さいデータサイズ(例えば、1KB)を有する画像の表現を生成し得る。ある実施の形態では、そのような表現は、出力(例えば、ラベル、分類、画像を記述する文等)を生成するために処理コスト(例えば、計算コスト、メモリ使用など。)を低減するのに役立ち得る。ある実施の形態では、そのような表現は、推論エンジン636の出力から出力を生成する異なる機械学習アプリケーションへの入力として提供され得る。ある実施の形態では、機械学習アプリケーション630によって生成された知識表現は、たとえば、ネットワークを介してさらなる処理を行う異なるデバイスに提供され得る。そのような実施の形態では、画像よりもむしろ知識表現を提供することは、たとえば、削減されたコストでより迅速なデータ送信を可能にする、技術的利益を提供し得る。別の例では、文書をクラスタリングするためにトレーニングされたモデルは、入力文書から文書クラスタを生成してもよい。文書クラスタは、元の文書にアクセスする必要なしにさらなる処理(例えば、文書がトピックに関連するかどうかを決定すること、文書の分類カテゴリを決定することなど。)に適しており、したがって、計算コストを節約する。
【0129】
ある実施の形態では、機械学習アプリケーション630は、オフライン方式とれで実施され得る。これらの実施の形態では、トレーニングされたモデル634は、第1の段階で生成され、機械学習アプリケーション630の一部として提供され得る。ある実施の形態では、機械学習アプリケーション630は、オンライン方式で実施され得る。たとえば、そのような実施の形態では、機械学習アプリケーション630(例えば、オペレーティングシステム608、他のアプリケーション612のうちの1つまたは複数)を呼び出すアプリケーションは、機械学習アプリケーション630によって生成された推論を利用し、たとえば、ユーザに推論を提供し、システムログ(例えば、ユーザが許可する場合、推論に基づいてユーザがとるアクション、または、さらなる処理のための入力として利用される場合、さらなる処理の結果)を生成することができる。システムログは、定期的に、例えば、1時間毎、1ヶ月毎、四半期毎に生成されてもよく、トレーニングされたモデル634を更新するために、例えば、トレーニングされたモデル634の埋め込みを更新するために、ユーザの許可と共に使用されてもよい。
【0130】
ある実施の形態では、機械学習アプリケーション630は、機械学習アプリケーション630が実行されるデバイス600の特定の構成に適合し得る方法で実施され得る。例えば、機械学習アプリケーション630は、利用可能な計算リソース、例えば、プロセッサ602を利用する計算グラフを決定することができる。例えば、機械学習アプリケーション630が複数のデバイス上の分散アプリケーションとして実施される場合、機械学習アプリケーション630は、計算を最適化するように個々のデバイス上で実行される計算を決定することができる。別の例では、機械学習アプリケーション630は、プロセッサ602が特定の数(たとえば、1000)のGPUコアを有するGPUを含むと判断し、それに応じて(例えば、1000個の個々のプロセス又はスレッドとして)、推論エンジン
を実施することができる。
【0131】
ある実施の形態では、機械学習アプリケーション630は、トレーニングされたモデルの集合を実施することができる。例えば、トレーニングされたモデル634は、各々が同じ入力データに適用可能な複数のトレーニングされたモデルを含み得る。これらの実施の形態では、機械学習アプリケーション630は、たとえば、利用可能な計算リソース、以前の推論による成功率などに基づいて、特定のトレーニングされたモデルを選択し得る。ある実施の形態では、機械学習アプリケーション630は、複数のトレーニングされたモデルが適用されるように推論エンジン636を実行することができる。これらの実施の形態では、機械学習アプリケーション630は、個々のモデルを適用することからの出力を、たとえば、個々の出力を各トレーニングされたモデルを適用することによってスコア化する投票技術を使用して、または1つまたは複数の特定の出力を選択することによって、組み合わせることができる。さらに、これらの実施の形態では、機械学習アプリケーションは、個々のトレーニングされたモデルを適用するための時間閾値(たとえば、0.5ms
)を適用し、時間閾値内で利用可能であるそれらの個々の出力のみを利用することができる。時間閾値内で受信されない出力は、利用されない、例えば破棄される場合がある。例えば、そのようなアプローチは、機械学習アプリケーションを呼び出す間に、例えばオペレーティングシステム608または1つまたは複数のアプリケーション612によって指定された時間制限があるときに適切であり得る。
【0132】
異なる実施の形態では、機械学習アプリケーション630は、異なるタイプの出力を生成することができる。例えば、機械学習アプリケーション630は、表現またはクラスタ(例えば、入力データの数値表現)、(例えば、画像、文書等を含む入力データに関する)ラベル、(例えば、画像または映像を説明した、入力文に対する応答として使用するのに適した、等の)フレーズまたは文、(例えば、入力に応答して機械学習アプリケーションによって生成された)画像、音声またはビデオを提供し得る(例えば、入力ビデオに応答して、機械学習アプリケーション630は、適用される特定の効果たとえば、トレーニングされたモデル634が、コミックブックまたは特定のアーチストからのトレーニングデータなどを使用してトレーニングされている場合には、コミックブックまたは特定のアーチストのスタイルでレンダリングされた出力ビデオを生成し得る等)。ある実施の形態において、機械学習アプリケーション630は、呼び出し元アプリケーション、例えばオペレーティングシステム608や1つまたは複数のアプリケーション612によって規定されたフォーマットに基づいて出力を生成しうる。ある実施の形態において、呼び出し元アプリケーションは、他の機械学習アプリケーションであってもよい。例えば、そのような構成は、生成型の敵対的ネットワークで使用することができ、呼び出している機械学習アプリケーションは、機械学習アプリケーション630からの出力を用いてトレーニングされ、逆もまた同様である。
【0133】
あるいは、メモリ604内の任意のソフトウェアは、任意の他の適切な記憶場所またはコンピュータ可読媒体に記憶することができる。さらに、メモリ604(および/または
他の接続された記憶装置)は、1つまたは複数の画像、メッセージ、1つまたは複数の分類、電子百科事典、辞書、シソーラス、知識ベース、メッセージデータ、文法、ユーザ選好、および/または本明細書に記載の特徴で使用される他の命令およびデータを記憶する
ことができる。メモリ604および任意の他のタイプのストレージ(磁気ディスク、光ディスク、磁気テープ、または他の有形媒体)は、「ストレージ」または「ストレージデバイス」と見なすことができる。
【0134】
I/Oインターフェイス606は、サーバデバイス600を他のシステムおよびデバイスとインターフェイス接続することを可能にする機能を提供することができる。インターフェイスされたデバイスは、デバイス600の一部として含めることができ、または分離
されて、デバイス600と通信することができる。例えば、ネットワーク通信デバイス、ストレージデバイス(例えば、メモリおよび/又はデータベース106)、および入出力
デバイスは、I/Oインターフェイス606を介して通信することができる。ある実施の形態では、I/Oインターフェイスは、入力デバイス(キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナ、センサなど。)および/
または出力デバイス(ディスプレイデバイス、スピーカデバイス、プリンタ、モータなど。)などのインターフェイスデバイスに接続することができる。
【0135】
I/Oインターフェイス606に接続することができるインターフェイス付きデバイスのいくつかの例は、コンテンツ、たとえば、画像、ビデオ、および/または本明細書で説
明する出力アプリケーションのユーザインターフェイスを表示するために使用することができる1つまたは複数のディスプレイデバイス620を含むことができる。ディスプレイデバイス620は、ローカル接続(例えば、ディスプレイバス)を介して、および/また
はネットワーク接続を介してデバイス600に接続することができ、任意の適切なディスプレイデバイスとすることができる。ディスプレイデバイス620は、LCD、LED、またはプラズマディスプレイスクリーン、CRT、テレビ、モニタ、タッチスクリーン、3Dディスプレイスクリーン、または他の視覚ディスプレイデバイスなどの任意の適切なディスプレイデバイスを含み得る。例えば、ディスプレイデバイス620は、モバイルデバイス上に提供される平坦なディスプレイ画面、ゴーグルもしくはヘッドセットデバイス内に提供される複数のディスプレイ画面、またはコンピュータデバイスのためのモニタ画面であり得る。
【0136】
I/Oインターフェイス606は、他の入力および出力デバイスとインターフェイスすることができる。いくつかの例は、画像をキャプチャすることができる1つまたは複数のカメラを含む。ある実施の形態は、(例えば、キャプチャされた画像の一部、音声コマンドなどとして)音をキャプチャするためのマイクロフォン、音を出力するためのオーディオスピーカデバイス、または他の入力デバイスおよび出力デバイスを提供することができる。
【0137】
説明を容易にするために、図6は、プロセッサ602、メモリ604、I/Oインターフェイス606、ならびにソフトウェアブロック608,612および630の各々に対する1つのブロックを示す。これらのブロックは、1つまたは複数のプロセッサまたは処理回路、オペレーティングシステム、メモリ、I/Oインターフェイス、アプリケーション、および/またはソフトウェアモジュールを表し得る。他の実施の形態では、デバイス
600は、示される構成要素のすべてを有しなくてもよく、および/または本明細書に示
される構成要素の代わりに、またはそれに加えて、他のタイプの構成要素を含む他の構成要素を有してもよい。いくつかのコンポーネントは、本明細書のいくつかの実施において説明されるようなブロックおよび動作を実行するものとして説明されるが、環境100、デバイス600、同様のシステム、またはそのようなシステムに関連する任意の適切なプロセッサまたは複数のプロセッサの任意の適切なコンポーネントまたはコンポーネントの組み合わせは、説明されるブロックおよび動作を実行することができる。
【0138】
本明細書で説明する方法は、コンピュータ上で実行され得るコンピュータプログラム命令またはコードによって実施され得る。たとえば、コードは、1つまたは複数のデジタルプロセッサ(たとえば、マイクロプロセッサまたは他の処理回路)によって実施することができ、半導体または固体メモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、リジッド磁気ディスク、光ディスク、固体メモリドライブ等を含む磁気、光学、電磁、または半導体記憶媒体のような、非一時的コンピュータ可読媒体(たとえば、記憶媒体)を含むコンピュータプログラム製品に格納することができる。プログラム命令はまた、
例えばサーバ(例えば、分散システムおよび/又はクラウドコンピューティングシステム
)から配信されるサービス(SaaS)としてのソフトウェアの形態で、電子信号に含まれ、電子信号として提供されることもできる。あるいは、1つまたは複数の方法は、ハードウェア(論理ゲートなど)で、またはハードウェアとソフトウェアとの組み合わせで実施され得る。ハードウェアの例は、プログラム可能なプロセッサ(例えば、フィールドプログラマブルゲートアレイ(FPGA)、複合プログラマブルロジックデバイス)、汎用プロセッサ、グラフィックプロセッサ、特定用途向け集積回路(ASIC)などであり得る。1つまたは複数の方法は、システム上で実行するアプリケーションの一部または構成要素として、または他のアプリケーションおよびオペレーティングシステムとともに実行するアプリケーションまたはソフトウェアとして実行することができる。
【0139】
説明は、その特定の実施に関して説明してきたが、これらの特定の実施は、例示にすぎず、限定的ではない。実施例において示される概念は、他の例および実施に適用され得る。
【0140】
本開示で説明する機能ブロック、動作、特徴、方法、デバイス、およびシステムは、当業者に知られているように、システム、デバイス、および機能ブロックの異なる組み合わせに統合または分割され得ることに留意されたい。任意の適切なプログラミング言語およびプログラミング技術を使用して、特定の実施のルーチンを実施することができる。異なるプログラミング技法、例えば手続き的またはオブジェクト指向の技法を採用することができる。ルーチンは、単一の処理装置または複数のプロセッサ上で実行することができる。ステップ、動作、または計算は、特定の順序で提示され得るが、順序は、異なる特定の実施の形態で変更され得る。ある実施の形態では、本明細書で順次として示される複数のステップまたは動作が同時に実行され得る。
図1
図2
図3
図4
図5A
図5B
図5C
図6