(57)【要約】  実施の形態は、画像選択の提案を提供することに関連する。ある実施の形態では、方法は、画像ライブラリ内の１つまたは複数の第１の画像の選択を示す第１のユーザ入力を受信することと、当該１つまたは複数の第１の画像のうちの１つまたは複数の第１の画像特性を判断することとを含む。当該方法は、当該画像ライブラリ内の１つまたは複数の第２の画像を識別することをさらに含む。当該１つまたは複数の第２の画像の各画像は、１つまたは複数の第１の画像特性のうちの少なくとも１つに一致する少なくとも１つの第２の画像特性に関連付けられている。当該方法は、ユーザインターフェイスを表示させることをさらに含む。当該ユーザインターフェイスは、当該１つまたは複数の第２の画像を含み、ユーザによる当該１つまたは複数の第２の画像の選択を可能にする。
2021504803.tif 000002
【特許請求の範囲】
【請求項１】
画像ライブラリ内の１つまたは複数の第１の画像の選択を示す第１のユーザ入力を受信することと、
前記１つまたは複数の第１の画像の１つまたは複数の第１の画像特性を決定することと、
前記画像ライブラリ内の１つまたは複数の第２の画像を識別することとを備え、前記１つまたは複数の第２の画像の各々は、前記１つまたは複数の第１の画像特性のうちの少なくとも１つに一致する少なくとも１つの第２の画像特性に関連付けられ、
ユーザインターフェイスを表示させることをさらに備え、前記ユーザインターフェイスは、前記１つまたは複数の第２の画像を含み、前記ユーザインターフェイスは、前記１つまたは複数の第２の画像の選択を可能にする、方法。
【請求項２】
前記１つまたは複数の第２の画像のうちの少なくとも１つの選択を示す第２のユーザ入力を受信することと、
前記第２のユーザ入力の受信に応答して、前記１つまたは複数の第２の画像のうちの前記少なくとも１つの１つまたは複数の第２の画像特性を決定することと、
前記画像ライブラリ内の１つまたは複数の第３の画像を識別することとを備え、前記１つまたは複数の第３の画像の各々は、前記１つまたは複数の第１の画像特性のうちの少なくとも１つおよび前記１つまたは複数の第２の画像特性のうちの少なくとも１つに一致する少なくとも１つの第３の画像特性に関連付けられ、
更新されたユーザインターフェイスを表示させることをさらに備え、前記更新されたユーザインターフェイスは、前記１つまたは複数の第３の画像を含み、前記更新されたユーザインターフェイスは、前記１つまたは複数の第３の画像の選択を可能にする、請求項１に記載の方法。
【請求項３】
画像アルバムを生成することをさらに備え、前記画像アルバムは、前記１つまたは複数の第１の画像および１つまたは複数の第２の画像のうちの少なくとも１つを含む、請求項２に記載の方法。
【請求項４】
前記１つまたは複数の第２の画像のうちの少なくとも１つの選択を示す第２のユーザ入力を受信することと、
画像コラージュを生成することとをさらに備え、前記画像コラージュは、前記１つまたは複数の第１の画像および前記１つまたは複数の第２の画像のうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項５】
前記１つまたは複数の第１の画像特性を決定することは、前記１つまたは複数の第１の画像のうちの少なくとも１つが不鮮明であると判断することを含み、前記１つまたは複数の第２の画像を識別することは、前記１つまたは複数の第２の画像の不鮮明度に基づいて前記１つまたは複数の第２の画像の各々を識別することを含む、請求項１に記載の方法。
【請求項６】
前記１つまたは複数の第１の画像特性を決定することは、前記１つまたは複数の第１の画像のうちの少なくとも１つに関連付けられた位置を決定することを含み、前記１つまたは複数の第２の画像を識別することは、前記１つまたは複数の第１の画像のうちの前記少なくとも１つに関連する前記位置の閾値距離内にあるそれぞれの位置に関連する画像を前記画像ライブラリから選択することを含む、請求項１に記載の方法。
【請求項７】
画像選択のコンテキストを決定することをさらに備え、前記１つまたは複数の第２の画像を識別することは、画像選択の前記コンテキストに基づく、請求項１に記載の方法。
【請求項８】
画像選択の前記コンテキストは、画像ベースの創作物の生成、または画像をターゲットソフトウェアアプリケーションに提供することのうちの１つである、請求項７に記載の方法。
【請求項９】
前記画像ベースの創作物は、画像アルバム、画像コラージュ、ビデオ、または印刷された出版物のうちの少なくとも１つを含む、請求項８に記載の方法。
【請求項１０】
前記１つまたは複数の第２の画像は、前記１つまたは複数の第１の画像のうちの少なくとも１つの複製である、請求項１に記載の方法。
【請求項１１】
前記１つまたは複数の第２の画像のうちの少なくとも１つの選択を示す第２のユーザ入力を受信することと、
前記１つまたは複数の第１の画像および前記１つまたは複数の第２の画像のうちの少なくとも１つに基づいて、提案されたアクション要素を前記ユーザインターフェイスに表示させることとをさらに備える、請求項１に記載の方法。
【請求項１２】
前記提案されたアクション要素のユーザ選択を受信することと、
前記ユーザ選択の受信に応答して、前記提案されたアクション要素に関連付けられたアクションを実行することとをさらに備え、前記アクションは、前記１つまたは複数の第１の画像および前記１つまたは複数の第２の画像のうちの少なくとも１つをアーカイブすること、前記１つまたは複数の第１の画像および前記１つまたは複数の第２の画像のうちの前記少なくとも１つを削除すること、または、前記１つまたは複数の第１の画像および前記１つまたは複数の第２の画像のうちの前記少なくとも１つを自動的に強調することを行なうことの１つまたは複数を含む、請求項１１に記載の方法。
【請求項１３】
ターゲットソフトウェアアプリケーションを示すコンテキスト情報を決定することと、
前記コンテキスト情報に少なくとも部分的に基づいて、画像ライブラリ内の１つまたは複数の第１の画像を識別することと、
ユーザインターフェイスを表示させることとを備え、前記ユーザインターフェイスは、前記１つまたは複数の第１の画像を含み、前記ユーザインターフェイスは、前記１つまたは複数の第１の画像の選択を可能にし、
前記１つまたは複数の第１の画像のうちの少なくとも１つの画像の選択を示す第１のユーザ入力を受信することと、
前記第１のユーザ入力の受信に応答して、前記少なくとも１つの画像を前記ターゲットソフトウェアアプリケーションに提供することとをさらに備える、方法。
【請求項１４】
前記少なくとも１つの画像の１つまたは複数の第１の画像特性を決定することと、
前記画像ライブラリ内の１つまたは複数の第２の画像を識別することとをさらに備え、前記１つまたは複数の第２の画像の各々は、前記１つまたは複数の第１の画像特性のうちの少なくとも１つを有しており、
更新されたユーザインターフェイスを表示させることを含み、前記更新されたユーザインターフェイスは、前記１つまたは複数の第２の画像を含み、前記ユーザインターフェイスは、前記１つまたは複数の第２の画像の選択を可能にする、請求項１３に記載の方法。
【請求項１５】
前記コンテキスト情報を決定することは、前記ターゲットソフトウェアアプリケーションのアプリケーションタイプを決定することを含む、請求項１３に記載の方法。
【請求項１６】
前記アプリケーションタイプは、画像共有アプリケーションを含み、前記１つまたは複数の第１の画像を識別することは、
品質閾値を満たす画像ライブラリから前記１つまたは複数の第１の画像を選択することを含む、請求項１５に記載の方法。
【請求項１７】
前記アプリケーションタイプは、金融アプリケーションを含み、前記１つまたは複数の第１の画像を識別することは、
前記画像ライブラリから前記１つまたは複数の第１の画像を選択することを含み、前記１つまたは複数の第１の画像は、レシート、文書、またはスクリーンショットのうちの１つまたは複数を含む画像ラベルに関連付けられる、請求項１５に記載の方法。
【請求項１８】
前記アプリケーションタイプは、メッセージングアプリケーションを含み、前記コンテキスト情報を決定することは、前記メッセージングアプリケーションにおけるメッセージング会話における参加者の識別情報を受信することをさらに含み、前記１つまたは複数の第１の画像を識別することは、
前記メッセージング会話における参加者のうちの少なくとも１つを示す画像を前記画像ライブラリから選択することを含む、請求項１５に記載の方法。
【請求項１９】
前記コンテキスト情報を決定することは、前記ターゲットソフトウェアアプリケーションからアプリケーションコンテキストを受信することを含み、前記１つまたは複数の第１の画像を識別することは、
前記アプリケーションコンテキストに基づいて１つまたは複数のセマンティック概念を決定することと、
前記１つまたは複数の第１の画像を選択することとを含み、前記１つまたは複数の第１の画像の各々の少なくとも１つの画像特性は、前記１つまたは複数のセマンティック概念のうちの少なくとも１つと一致する、請求項１３に記載の方法。
【請求項２０】
命令が格納されている非一時的なコンピュータ可読媒体であって、１つまたは複数のハードウェアプロセッサによって実行されると、前記１つまたは複数のハードウェアプロセッサに以下の動作を実行させ、前記以下の動作は、
画像ライブラリ内の１つまたは複数の第１の画像の選択を示す第１のユーザ入力を受信することと、
前記１つまたは複数の第１の画像の１つまたは複数の第１の画像特性を決定することと、
前記画像ライブラリにおける１つまたは複数の第２の画像を識別することとを備え、
前記１つまたは複数の第２の画像の各々は、前記１つまたは複数の第１の画像特性のうちの少なくとも１つに一致する少なくとも１つの第２の画像特性に関連付けられ、
ユーザインターフェイスを表示させることをさらに備え、前記ユーザインターフェイスは、前記１つまたは複数の第２の画像を含み、前記ユーザインターフェイスは、前記１つまたは複数の第２の画像の選択を可能にし、
前記１つまたは複数の第２の画像のうちの少なくとも１つの選択を示す第２のユーザ入力を受信することと、
前記１つまたは複数の第１の画像および前記１つまたは複数の第２の画像のうちの少なくとも１つに基づいて、提案されたアクション要素を前記ユーザインターフェイスに表示させることと、
前記提案されたアクション要素のユーザ選択の受信に応答して、前記提案されたアクション要素に関連付けられたアクションを実行することとをさらに備え、前記アクションは、前記１つまたは複数の第１の画像および前記１つまたは複数の第２の画像のうちの少なくとも１つをアーカイブすること、前記１つまたは複数の第１の画像および前記１つまたは複数の第２の画像のうちの少なくとも１つを削除すること、前記１つまたは複数の第１の画像および前記１つまたは複数の第２の画像のうちの前記少なくとも１つを含む画像ベースの創作物を生成すること、または、前記１つまたは複数の第１の画像および前記１つまたは複数の第２の画像のうちの前記少なくとも１つの自動的な強調を実行することの１つまたは複数を含む。
【発明の詳細な説明】
【背景技術】
【０００１】
関連出願の参照
本出願は、（２０１７年１２月２２日に出願され、「画像選択の提案」と題された）米国特許仮出願６２/６０９，５４３に対する優先権を主張し、その全体が参照により本明細書に組み込まれる。
【０００２】
背景
デジタルカメラ装置の人気および利便性は、デジタル写真およびビデオのような視覚的コンテンツをユビキタスにしてきた。例えば、様々な種類の多数の画像は、ユーザデバイスによってキャプチャされ、記憶され、表示されることができる。いくつかのデバイスは、ユーザの画像または他のコンテンツが、コレクション内のコンテンツアイテムを含むレイアウトで表示されることを可能にする。通常、コンテンツアイテムのビューは画面に表示され、ユーザは、コンテンツアイテムのコレクションの異なる部分がビュー内に表示されるようにコンテンツアイテムをスクロールさせることができる。ユーザはまた、他のユーザとの共有、ピクチャコラージュやフォトブックの生成など、様々な目的のために１つまたは複数のコンテンツアイテムを選択し得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本明細書において提供される背景技術の説明は、本開示の文脈を概して提示することを目的としている。現在表示されている発明者らの研究は、この背景技術の項で説明される限り、さもなければ出願時に従来技術としての資格がないかもしれない説明の局面と同様に、本開示に対する従来技術として明示的にも暗黙的にも認めるものではない。
【課題を解決するための手段】
【０００４】
概要
本出願の実施の形態は、画像選択提案に関する。ある実施の形態では、コンピュータで実施される方法は、画像ライブラリ内の１つまたは複数の第１の画像の選択を示す第１のユーザ入力を受信することと、１つまたは複数の第１の画像の１つまたは複数の第１の画像特性を決定することと、画像ライブラリ内の１つまたは複数の第２の画像を識別することとを含み、当該１つまたは複数の第２の画像の各々は、１つまたは複数の第１の画像特性のうちの少なくとも１つに一致する少なくとも１つの第２の画像特性に関連付けられており、、ユーザインターフェイスを表示させることを含み、ユーザインターフェイスは、１つまたは複数の第２の画像を含み、ユーザインターフェイスは、１つまたは複数の第２の画像の選択を可能にする。
【０００５】
これらおよび他の実施の形態は、それぞれ、以下の特徴のうちの１つまたは複数を任意選択で含み得る：１つまたは複数の第２の画像のうちの少なくとも１つの選択を示す第２のユーザ入力を受信すること、第２のユーザ入力の受信に応答して、１つまたは複数の第２の画像のうちの少なくとも１つの１つまたは複数の第２の画像特性を決定すること、画像ライブラリ内の１つまたは複数の第３の画像を識別することとを含み、１つまたは複数の第３の画像の各々は、１つまたは複数の第１の画像特性のうちの少なくとも１つおよび１つまたは複数の第２の画像特性のうちの少なくとも１つに一致する少なくとも１つの第３の画像特性に関連付けられており、更新されたユーザインターフェイスを表示させることを含み、更新されたユーザインターフェイスは、１つまたは複数の第３の画像を含み、更新されたユーザインターフェイスは、１つまたは複数の第３の画像の選択を可能にする。
【０００６】
これらおよび他の実施の形態は、それぞれ、以下の特徴のうちの１つまたは複数を任意選択で含み得る：画像アルバムを生成することを含み、当該画像アルバムは、１つまたは複数の第１の画像および１つまたは複数の第２の画像のうちの少なくとも１つを含み、１つまたは複数の第２の画像のうちの少なくとも１つの選択を示す第２のユーザ入力を受信することと、画像コラージュを生成することとを含み、画像コラージュは、１つまたは複数の第１の画像および１つまたは複数の第２の画像のうちの少なくとも１つを含み、１つまたは複数の第１の画像特性を決定することは、画像が不鮮明であることを決定することを含み、１つまたは複数の第２の画像を識別することは、１つまたは複数の第２の画像の不鮮明さに基づいて１つまたは複数の第２の画像の各々を識別することを含む。
【０００７】
これらおよび他の実施の形態は、それぞれ、以下の特徴のうちの１つまたは複数を任意選択で含み得る：１つまたは複数の第１の画像特性を決定することは、第１の画像に関連する位置を決定することを含み、１つまたは複数の第２の画像を識別することは、第１の画像に関連する位置の閾値距離内にあるそれぞれの位置に関連する画像を画像ライブラリから選択することを含み、方法は、画像選択のコンテキストを決定することをさらに含み、１つまたは複数の第２の画像を識別することは、画像選択のコンテキストに基づく。画像選択のコンテキストは、画像ベースの創作物の生成、および/または画像をターゲットソフトウェアアプリケーションに提供することであり得る。画像ベースの創作物は、画像アルバム、画像コラージュ、ビデオ、もしくは印刷された出版物のうちの少なくとも１つ、またはこれらの任意の組合せを含むことができる。
【０００８】
これらおよび他の実施の形態は、それぞれ、以下の特徴のうちの１つまたは複数を任意選択で含み得る：第１の画像の複製であり、１つまたは複数の第１の画像および１つまたは複数の第２の画像のうちの少なくとも１つに基づく、１つまたは複数の第２の画像のうちの少なくとも１つの選択を示す第２のユーザ入力を受信すること、提案されたアクション要素をユーザインターフェイスに表示させること。本方法は、提案されたアクション要素のユーザ選択を受信すること、および、ユーザ選択を受信することに応答して、提案されたアクション要素に関連付けられたアクションを実行することを含むことができ、当該アクションは、以下のうちの１つ以上を含む：１つまたは複数の第１の画像および１つまたは複数の第２の画像のうちの少なくとも１つをアーカイブすること、１つまたは複数の第１の画像および１つまたは複数の第２の画像のうちの少なくとも１つを削除すること、および/または１つまたは複数の第１の画像および１つまたは複数の第２の画像のうちの少なくとも１つの自動的な強調を実行すること。
【０００９】
ある実施の形態では、コンピュータで実施される方法は、ターゲットソフトウェアアプリケーションを示すコンテキスト情報を決定することと、コンテキスト情報に少なくとも部分的に基づいて、画像ライブラリ内の１つまたは複数の第１の画像を識別することと、ユーザインターフェイスを表示させることとを含み、ユーザインターフェイスは、１つまたは複数の第１の画像を含み、ユーザインターフェイスは、１つまたは複数の第１の画像の選択を可能にし、１つまたは複数の第１の画像のうちの少なくとも１つの画像の選択を示す第１のユーザ入力を受信することと、第１のユーザ入力の受信に応答して、選択された少なくとも１つの画像をターゲットソフトウェアアプリケーションに提供することとを含む。
【００１０】
これらおよび他の実施の形態は、それぞれ、以下の特徴のうちの１つまたは複数を任意選択で含み得る：選択された少なくとも１つの画像の１つまたは複数の第１の画像特性を決定することと、画像ライブラリ内の１つまたは複数の第２の画像を識別することとを含み、１つまたは複数の第２の画像の各々が１つまたは複数の第１の画像特性のうちの少なくとも１つを有しており、更新されたユーザインターフェイスを表示させることを含み、更新されたユーザインターフェイスは、１つまたは複数の第２の画像を含み、ユーザインターフェイスは、１つまたは複数の第２の画像の選択を可能にする。
【００１１】
これらおよび他の実施の形態は、それぞれ、以下の特徴のうちの１つまたは複数を任意選択で含み得る：コンテキスト情報を決定することは、ターゲットソフトウェアアプリケーションのアプリケーションタイプを決定することを含む。アプリケーションタイプは、画像共有アプリケーションを含むことができる。１つまたは複数の第１の画像を識別することは、品質閾値を満たす１つまたは複数の第１の画像を画像ライブラリから選択することを含むことができる。アプリケーションタイプは、金融アプリケーションを含むことができ、１つまたは複数の第１の画像を識別することは、レシート、文書、またはスクリーンショットのうちの１つまたは複数を含む画像ラベルに関連付けられた１つまたは複数の第１の画像を画像ライブラリから選択することを含むことができる。アプリケーションタイプは、メッセージングアプリケーションを含むことができ、コンテキスト情報を決定することは、メッセージングアプリケーションにおけるメッセージング会話における参加者の識別情報を受信することをさらに含むことができ、１つまたは複数の第１の画像を識別することは、メッセージング会話における参加者のうちの少なくとも１つを示す画像を画像ライブラリから選択することを含むことができる。
【００１２】
これらおよび他の実施の形態は、それぞれ、以下の特徴のうちの１つまたは複数を任意選択で含み得る：コンテキスト情報を決定することは、ターゲットソフトウェアアプリケーションからアプリケーションコンテキストを受信することを含み、１つまたは複数の第１の画像を識別することは、アプリケーションコンテキストに基づいて１つまたは複数のセマンティック概念を決定することと、１つまたは複数の第１の画像を選択することとを含み、選択された画像の各々の少なくとも１つの画像特性がセマンティック概念の少なくとも１つと一致する。
【００１３】
ある実施の形態では、非一時的なコンピュータ可読媒体は、そこに格納された命令を含み、当該命令は、１つまたは複数のハードウェアプロセッサによって実行されると、１つまたは複数のハードウェアプロセッサに動作を実行させ、当該動作は、画像ライブラリ内の１つまたは複数の第１の画像の選択を示す第１のユーザ入力を受信することと、１つまたは複数の第１の画像の１つまたは複数の第１の画像特性を決定することと、画像ライブラリ内の１つまたは複数の第２の画像を識別することとを含み、１つまたは複数の第２の画像の各々が、１つまたは複数の第１の画像特性のうちの少なくとも１つに一致する少なくとも１つの第２の画像特性に関連付けられており、ユーザインターフェイスを表示させることを含み、ユーザインターフェイスは、１つまたは複数の第２の画像を含み、ユーザインターフェイスは、１つまたは複数の第２の画像の選択を可能にし、１つまたは複数の第２の画像のうちの少なくとも１つの選択を示す第２のユーザ入力を受信することと、１つまたは複数の第１の画像および１つまたは複数の第２の画像のうちの少なくとも１つに基づいて、提案されたアクション要素をユーザインターフェイスに表示させることと、提案されたアクション要素のユーザ選択の受信に応答して、提案されたアクション要素に関連付けられたアクションを実行することとを含む。ある実施の形態では、アクションは、以下のうちの１つまたは複数を含む：１つまたは複数の第１の画像および１つまたは複数の第２の画像のうちの少なくとも１つをアーカイブすること、１つまたは複数の第１の画像および１つまたは複数の第２の画像のうちの少なくとも１つを削除すること、１つまたは複数の第１の画像および１つまたは複数の第２の画像のうちの少なくとも１つを含む画像ベースの創作物を生成すること、または、１つまたは複数の第１の画像および１つまたは複数の第２の画像のうちの少なくとも１つを自動的に強調することを実行すること。
【図面の簡単な説明】
【００１４】
【図１】本明細書で説明する１つまたは複数の実施の形態のために使用され得る例示的なネットワーク環境のブロック図である。
【図２】ある実施の形態による、画像選択提案を提供するための例示的な方法を示すフロー図である。
【図３】ある実施の形態による、画像選択提案を提供するための例示的な方法を示すフロー図である。
【図４】ある実施の形態による、画像選択提案を含む例示的なユーザインターフェイス５００の概略図である。
【図５Ａ】ある実施の形態による、画像選択提案を含む例示的なユーザインターフェイス４００の概略図である。
【図５Ｂ】ある実施の形態による、画像選択提案を含む別の例示的なユーザインターフェイス５３０の概略図である。
【図５Ｃ】ある実施の形態による、画像の創作物および画像選択提案を含む別の例示的なユーザインターフェイス５４０の概略図である。
【図６】本明細書で説明する１つまたは複数の実施の形態に使用され得る例示的なデバイスのブロック図である。
【発明を実施するための形態】
【００１５】
１つまたは複数の実施の形態は、ユーザが画像を選択するのを補助する。本明細書で説明する１つまたは複数の実施の形態は、ユーザが選択するための提案された画像を提供することを含む。実施態様は、ユーザが、キーワードまたはフレーズを使用して画像を検索すること、スクロールによって画像ライブラリをブラウジングすることなど、低減された入力でユーザが画像を選択することを可能にするユーザインターフェイスを提供することによって利益を提供する。実施態様は、そのようなアクティビティなしにユーザが画像を選択することを可能にするユーザインターフェイスを提供することによって、検索またはブラウジングするユーザをサポートするために使用されるコンピューティングリソースを低減することができる。
【００１６】
ユーザは、様々な目的のために、例えば画像ライブラリから、他のユーザと画像を共有するために、画像アルバム、画像コラージュ、印刷されたフォトブック、または画像を含むビデオなどの画像ベースの創作物を生成するために、画像を選択する。ユーザは、多数の画像、例えば、数百、数千、または数百万もの画像を含む画像ライブラリを有し得る。画像を見つけて選択することは、ユーザにとって困難であり得る。例えば、画像ライブラリ内の画像が時系列に編成されて表示される場合、ユーザは、特定の目的のために画像を閲覧および選択するために複数のスクロール操作を行う必要があるかもしれない。関心のある画像を見つけるために前後にスクロールすることは、面倒であり、ユーザは、そのようなスクロールをイライラすると思うかもしれない。さらに、画像をスクロールするそのようなユーザアクティビティは、コンピューティングデバイスがメモリまたはストレージから追加の画像を取り出し、異なる画像を示すためにユーザインターフェイスをリフレッシュすることを必要とし、コンピューティングデバイスのコンピューティングリソースの使用を必要とする。
【００１７】
画像ライブラリのアプリケーションは、画像検索の特徴を含むことができる。例えば、ユーザはテキストクエリを指定することができ、画像ライブラリのアプリケーションは、検索に関連する画像をライブラリから返すことができ、ユーザは、返された画像から画像を選択することができる。しかしながら、これは、ユーザがクエリを定義することを必要とする。さらに、ユーザは、選択すべき画像の組全体を得るために、複数の異なるクエリを指定する必要があり得る。クエリを介して画像を検索して選択することは、面倒である。さらに、ユーザの検索アクティビティは、コンピューティングデバイスが、例えば、当該コンピューティングデバイス上にローカルに格納された、またはネットワークを介した遠隔サーバに格納された画像ライブラリにアクセスすることを、および、ユーザ指定の検索クエリに一致する画像を識別することを要求し、当該コンピューティングデバイスのコンピューティングリソースの使用を必要とする。
【００１８】
本文書に記載される実施の形態は、多数の画像を含む画像ライブラリから画像を発見および選択することにおける問題のいくつかに対処する。ある実施の形態では、画像ライブラリ中の１つまたは複数の第１の画像の選択を示す第１のユーザ入力が受け取られる。１つまたは複数の第１の画像の１つまたは複数の第１の画像特性が決定される。画像ライブラリ内の１つまたは複数の第２の画像は、自動的に識別され、１つまたは複数の第１の画像特性のうちの少なくとも１つに一致する少なくとも１つの第２の画像特性にそれぞれ関連付けられる。当該１つまたは複数の第２の画像を含み、当該１つまたは複数の第２の画像の選択を可能にするユーザインターフェイスが表示される。
【００１９】
ユーザ選択に合致する画像を自動的に識別して提示することによって、本明細書で説明する実施の形態は、ユーザが画像ライブラリをスクロールするときに画像を表示する、またはユーザ入力によって指定されたテキスト検索クエリを満たす結果として得られる画像を表示する必要性を排除する。ユーザ入力が画像を選択すると、適合する特性を有するユーザの画像ライブラリからの追加画像は、自動的に識別され、ユーザが選択するために提示される。このようにして、本明細書で説明される技法は、画像の記憶、表示、および選択からの効率的な検索を可能にし、画像の容易な発見および選択を可能にするユーザインターフェイスを提示する。スクロールされた画像の長い表示を低減または回避することによって、および、テキスト検索クエリからの検索結果の複数の検索および表示を低減または回避することによって、デバイスリソースの消費を低減することが可能になる。
【００２０】
記載される提案された画像選択は、ユーザインターフェイスにおける画像のより迅速かつより効率的な表示、および画像を位置付けおよび選択するためのユーザインターフェイスとのユーザのより効率的な相互作用を可能にすることができる。例えば、提案された画像選択の表示は、ユーザが容易に画像を選択することを可能にし、選択すべき画像を決定するために検索クエリを指定するテキストまたは他の複雑な入力を手動で提供する必要性を低減または排除する。さらに、提案された画像選択は、画像を表示する時間および処理を低減し、画像を見つけるために手動で指定された検索が受け取られる回数を低減する。提案された画像選択はまた、クライアントデバイスが、検索（例えば、スマートウォッチまたはキーボードまたはマイクロフォンを含まない他のウエアラブルデバイス）のための容易で、単純な、または任意のテキスト入力機能がないときに有用である。そのような特徴は、低減されたユーザ入力および低減された時間を伴うコンテンツ表示プログラムとの対話を可能にし、したがって、そうでなければ、そのようなプログラムにおいてユーザ入力を受信し、処理し、結果を表示するために必要とされるであろう、デバイスリソースの消費を低減する。
【００２１】
したがって、１つまたは複数の説明される実施の形態の技術的効果は、ユーザインターフェイスにおけるコンテンツデータアイテムの表示が、結果を得るのに費やされるより少ない計算時間およびより少ない計算リソースで提供されることである。例えば、記載される技術および特徴の技術的効果は、当該記載される技術または特徴のうちの１つまたは複数を提供しない従来のシステムと比較して、特定の画像を表示および選択するために利用されるシステム処理リソースの消費の低減である。例えば、以前のシステムは、検索クエリをテキストとして受信するための以前の技術を使用することができ、この場合、どの検索クエリが選択すべき画像を提供するのに関連するかをユーザが決定するときに検索結果の反復を表示するために、プロセッサ、メモリ、およびディスプレイリソースなどの（対応する電力消費を伴う）追加の計算リソースが必要である。
【００２２】
記載される技術および特徴のさらなる技術的効果は、当該記載される技術または特徴のうちの１つまたは複数を提供しないシステムによって利用される、表示および検索処理などのシステム処理リソースの消費ならびにおよび電力消費の低減である。例えば、そのような従来のシステムでは、ユーザは、コンテンツ要素のビューを手動でスクロールし、ユーザは、そのような手動スクロールを介して所望のコンテンツアイテムを手動で位置付けなければならず、（例えば、コンテンツデータアイテムを前方向および後方向への繰り返しの表示およびスクロール、ユーザからコンテンツアイテムを表示および/又は検索するためのコマンドを繰り返し受信すること等のために）システムリソースの非効率的な使用につながる。
【００２３】
本明細書で記載されるある実施の形態が、ユーザに関する個人情報（例えば、ユーザデータ、ユーザのソーシャルネットワークに関する情報、その場所におけるユーザの場所および時間、ユーザのバイオメトリック情報、ユーザの活動および人口統計情報）を収集または使用し得る状況では、ユーザは、情報が収集されるかどうか、個人情報が記憶されるかどうか、個人情報が使用されるかどうか、および情報がどのようにユーザに関して収集され、記憶され、使用されるかを制御する１つまたは複数の機会を提供される。すなわち、本明細書で説明されるシステムおよび方法は、特に、それを行なうように適切なユーザからの明示的な許可を受けて、ユーザ個人情報を収集し、記憶し、および/または使用する。例えば、ユーザは、プログラムまたは特徴が、その特定のユーザまたはそのプログラムまたは特徴に関連する他のユーザに関するユーザ情報を収集するかどうかに関する制御を提供される。個人情報が収集されるべき各ユーザには、そのユーザに関連する情報収集の制御を可能にし、情報が収集されるかどうか、および情報のどの部分が収集されるべきかに関する許可または認可を提供するために、１つまたは複数のオプションが提示される。例えば、ユーザは、通信ネットワークを介して１つまたは複数のそのような制御オプションを提供され得る。さらに、特定のデータは、個人的に識別可能な情報が取り除かれるように保存または使用される前に、１つまたは複数の方法で取り扱われてもよい。一例として、ユーザの識別情報は、個人的に識別可能な情報が決定されないように取り扱うことができる。別の例として、ユーザの特定の位置を決定することができないように、ユーザデバイスの地理的位置をより大きな領域にまで一般化することができる。
【００２４】
本明細書において言及される画像は、１つまたは複数の画素値（例えば、色値、輝度値など。）を有するピクセルを有するデジタル画像である。画像は、静止画像または単一画像であり得るか、または一連の画像、たとえば、ビデオフレームのビデオシーケンスにおけるフレームに含まれる画像、または異なるタイプのシーケンスもしくは画像のアニメーションにおける画像であり得る。ビデオは、複数の画像のシーケンスを含む。たとえば、本明細書で記載される実施の形態は、単一画像または静止画像（例えば、写真、絵文字、または他の画像）、ビデオ、または動画画像（例えば、シネマグラフまたは動きを含む他の動画、アニメーションおよび音声を含むステッカーなど。）であるコンテンツデータアイテムとともに使用され得る。テキストは、本明細書で参照されるように、英数字、絵文字、記号、または他の文字を含むことができる。音声セグメントは、例えばスピーカから音声を提供するために処理することができる標準的な音声フォーマットで提供される音声データを含むことができる。
【００２５】
図１は、本明細書で記載されるある実施の形態で使用され得る例示的なネットワーク環境１００のブロック図を示す。ある実施の形態では、ネットワーク環境１００は、１つまたは複数のサーバシステム、たとえば、図１の例ではサーバシステム１０２および第２のサーバシステム１４０を含む。サーバシステム１０２および１４０は、例えば、ネットワーク１３０と通信することができる。サーバシステム１０２は、サーバデバイス１０４およびデータベース１０６または他のストレージデバイスを含むことができる。ある実施の形態では、サーバデバイス１０４は、画像ライブラリアプリケーション１５６bを提供し得る。第２のサーバシステム１４０は、１つまたは複数のアプリケーション、たとえば、メッセージングアプリケーションA１４４、画像共有アプリケーションB１４６、および金融アプリケーションC１４８を提供するように構成された第２のサーバデバイス１４２を含むことができる。
【００２６】
ネットワーク環境１００はまた、ネットワーク１３０を介して互いに、および/またはサーバシステム１０２および/または第２のサーバシステム１４０と通信することができる、１つまたは複数のクライアントデバイス、たとえば、クライアントデバイス１２０，１２２，１２４および１２６を含むことができる。ネットワーク１３０は、インターネット、ローカルエリアネットワーク（ＬＡＮ）、ワイヤレスネットワーク、スイッチまたはハブ接続などのうちの１つまたは複数を含む、任意のタイプの通信ネットワークであり得る。ある実施の形態では、ネットワーク１３０は、たとえば、ピアツーピアワイヤレスプロトコル（例えば、Bluetooth（登録商標）、Wi-Fi（登録商標） Directなど。）などを使用する、デバイス間のピアツーピア通信を含み得る。２つのクライアントデバイス１２０と１２２との間のピアツーピア通信の一例が矢印１３２によって示されている。
【００２７】
説明を容易にするために、図１は、サーバシステム１０２、サーバデバイス１０４、データベース１０６、第２のサーバシステム１４０、および第２のサーバデバイス１４２の１つのブロックを示し、クライアントデバイス１２０，１２２，１２４および１２６の４つのブロックを示す。サーバブロック１０２，１０４，１０６，１４０および１４２は、複数のシステム、サーバデバイス、およびネットワークデータベースを表してもよく、ブロックは、示されるものとは異なる構成で提供されてもよい。例えば、サーバシステム１０２および/または第２のサーバシステム１４０は、ネットワーク１３０を介して他のサーバシステムと通信することができる複数のサーバシステムを表すことができる。
【００２８】
ある実施の形態では、サーバシステム１０２および/または第２のサーバシステム１４０は、たとえば、クラウドホスティングサーバを含み得る。いくつかの例では、データベース１０６および/または他の記憶デバイスは、サーバデバイス１０４とは別個のサーバシステムブロック内に提供され、ネットワーク１３０を介してサーバデバイス１０４および他のサーバシステムと通信することができる。また、任意の数のクライアントデバイスが存在してもよい。各クライアントデバイスは、任意のタイプの電子デバイス、例えば、デスクトップコンピュータ、ラップトップコンピュータ、携帯またはモバイルデバイス、携帯電話、スマートフォン、タブレットコンピュータ、テレビ、テレビセットトップボックスまたはエンターテインメントデバイス、ウェアラブルデバイス（例えば、表示眼鏡またはゴーグル、腕時計、ヘッドセット、アームバンド、ジュエリーなど）、携帯情報端末（PDA）、メディアプレーヤ、ゲーム装置などであり得る。いくつかのクライアントデバイスはまた、データベース１０６または他のストレージと同様のローカルデータベースを有し得る。ある実施の形態では、ネットワーク環境１００は、示される構成要素のすべてを有さなくてもよく、および/または本明細書で記載される構成要素の代わりに、またはそれに加えて、他のタイプの構成要素を含む他の構成要素を有してもよい。
【００２９】
様々な実施の形態では、エンドユーザＵ１、Ｕ２、Ｕ３、およびＵ４は、それぞれのクライアントデバイス１２０，１２２，１２４および１２６を使用して、サーバシステム１０２と、および/または互いに通信することができる。いくつかの例では、ユーザＵ１、Ｕ２、Ｕ３、およびＵ４は、それぞれのクライアントデバイスおよび/またはサーバシステム１０２もしくは第２のサーバシステム１４０上で実行されるアプリケーションを介して、および/またはサーバシステム１０２もしくは第２のサーバシステム１４０上に実施されるネットワークサービス、たとえばソーシャルネットワークサービスもしくは他のタイプのネットワークサービスを介して、互いに相互作用することができる。たとえば、それぞれのクライアントデバイス１２０，１２２，１２４および１２６は、１つまたは複数のサーバシステム（例えば、システム１０２、第２のサーバシステム１４０）との間でデータを通信することができる。
【００３０】
ある実施の形態では、サーバシステム１０２および/または第２のサーバシステム１４０は、各クライアントデバイスがサーバシステム１０２または第２のサーバシステム１４０および/またはネットワークサービスにアップロードされた通信コンテンツまたは共有コンテンツを受信することができるように、適切なデータをクライアントデバイスに提供することができる。いくつかの例では、ユーザＵ１〜Ｕ４は、オーディオもしくはビデオ会議、オーディオ、ビデオ、もしくはテキストチャット、または他の通信モードもしくはアプリケーションを介して相互作用することができる。サーバシステム１０２または第２のサーバシステム１４０によって実施されるネットワークサービスは、ユーザが様々な通信を実行すること、リンクおよび関連付けを形成すること、画像、テキスト、ビデオ、オーディオ、および他のタイプのコンテンツなどの共有コンテンツをアップロードおよびポストすること、かつ/または他の機能を実行することを可能にするシステムを含むことができる。たとえば、クライアントデバイスは、クライアントデバイスに送信またはストリーミングされ、サーバおよび/またはネットワークサービスを介して（または異なるクライアントデバイスから直接）、異なるクライアントデバイスから発信されるか、またはサーバシステムおよび/またはネットワークサービスから発信されるコンテンツポストなどの受信データを表示することができる。ある実施の形態では、クライアントデバイスは、たとえば、上述したように、クライアントデバイス間のピアツーピア通信を使用して、互いに直接通信することができる。ある実施の形態では、「ユーザ」は、システムまたはネットワークとインターフェイスする人と同様に、１つまたは複数のプログラムまたは仮想エンティティを含み得る。
【００３１】
ある実施の形態では、クライアントデバイス１２０、１２２、１２４、および/または１２６のいずれかが、１つまたは複数のアプリケーションを提供することができる。例えば、図１に示されるように、クライアントデバイス１２０は、カメラアプリケーション１５２、画像ライブラリアプリケーション１５６a、および１つまたは複数の他のアプリケーション１５４を提供し得る。クライアントデバイス１２２〜１２６はまた、同様のアプリケーションを提供してもよい。例えば、カメラアプリケーション１５２は、各クライアント装置のユーザ（例えばユーザＵ１〜Ｕ４）に例えば、各クライアント装置のカメラを用いて、画像をキャプチャする能力を提供し得る。例えば、カメラアプリケーション１５２は、クライアント装置１２０において実行するソフトウェアアプリケーションであり得る。ある実施の形態では、カメラアプリケーション１５２は、ユーザインターフェイスを提供してもよい。
【００３２】
ある実施の形態では、クライアントデバイス１２０は、画像ライブラリアプリケーション１５６aを含み得る。画像ライブラリアプリケーション１５６aは、図６を参照して説明されるように、クライアントデバイス１２０のハードウェアおよび/またはソフトウェアを使用して実施され得る。異なる実施の形態では、画像ライブラリアプリケーション１５６aは、たとえば、クライアントデバイス１２０〜１２４のいずれかで実行されるスタンドアロンの画像ライブラリアプリケーションであってもよく、またはサーバシステム１０２上に提供される画像ライブラリアプリケーション１５６bと連携して動作してもよい。画像ライブラリアプリケーション１５６aおよび画像ライブラリアプリケーション１５６bは、画像管理機能を提供することができる。画像管理機能は、カメラアプリケーション１５２を使用してキャプチャされた写真およびビデオを記憶する機能と、他の画像、例えば、スキャンされた画像、スクリーンショットなどを記憶する機能と、画像編集機能と、画像コラージュ、ビデオ、画像アルバム、または印刷された出版物（例えば、フォトブック）のような画像ベースの創作物を生成する機能とを含み得る。画像ライブラリアプリケーション１５６はまた、画像、例えば、画像ピクセルおよび画像メタデータをプログラム的に分析して、１つまたは複数の画像特性を決定し得る。画像ライブラリアプリケーション１５６は、例えば、クライアントデバイスのローカルストレージ、および/またはネットワーク１３０を介して通信する１つまたは複数の他のデバイスのリモートストレージ、例えば、サーバシステム１０２および/または１４０のデータベース１０６、１つまたは複数の異なるクライアントデバイスのストレージなどに画像データおよび特徴を記憶し得る。
【００３３】
ある実施の形態では、クライアントデバイス１２０は、１つまたは複数の他のアプリケーション１５４を含み得る。例えば、他のアプリケーション１５４は、様々な種類の機能、例えば、カレンダー、アドレス帳、電子メール、ウェブブラウザ、ショッピング、輸送（例えば、タクシー、電車、エアライン予約など。）、エンターテインメント（例えば、音楽プレーヤ、ビデオプレーヤ、ゲームアプリケーションなど。）、ソーシャルネットワーキング（例えば、メッセージングまたはチャット、音声/映像呼び出し、画像/映像共有など。）などを提供するアプリケーションであり得る。ある実施の形態では、他のアプリケーション１５４のうちの１つまたは複数は、クライアントデバイス１２０上で実行するスタンドアロン型アプリケーションであり得る。ある実施の形態では、他のアプリケーション１５４のうちの１つまたは複数は、アプリケーション１５４のデータおよび/または機能を提供するサーバシステム、たとえば、第２のサーバシステム１４０にアクセスすることができる。たとえば、第２のサーバシステム１４０によって提供されるものとして示されているアプリケーション１４４，１４６および１４８のいずれかは、データおよび/またはコマンドを他のアプリケーション１５４のうちの１つまたは複数に提供することができる。ある実施の形態では、サーバアプリケーション１４４-１４８は、たとえば、ウェブブラウザまたは他のクライアント側プログラムを介してクライアントデバイスによってアクセスされるスタンドアロン型アプリケーションであり得る。
【００３４】
クライアントデバイス１２０、１２２、１２４、および/または１２６上のユーザインターフェイスは、通信、プライバシー設定、通知、および他のデータと同様に、ユーザコンテンツ、ならびに、画像、ビデオ、データ、および他のコンテンツを含む他のコンテンツの表示を可能にすることができる。そのようなユーザインターフェイスは、クライアントデバイス上のソフトウェア、サーバデバイス上のソフトウェア、および/または、クライアントソフトウェアとサーバデバイス１０４および/または第２のサーバデバイス１４２上で実行するサーバソフトウェアとの組み合わせ、たとえば、アプリケーションソフトウェア、またはサーバシステム１０２および/または第２のサーバデバイス１４２と通信するクライアントソフトウェアを使用して表示することができる。ユーザインターフェイスは、クライアントデバイスまたはサーバデバイスのディスプレイデバイス、たとえば、タッチスクリーンまたは他のディスプレイスクリーン、プロジェクタなどによって表示され得る。ある実施の形態では、サーバシステム上で実行されるアプリケーションプログラムは、クライアントデバイスにおいてユーザ入力を受信し、当該クライアントデバイスにおいて視覚データ、音声データなどのデータを出力するために、当該クライアントデバイスと通信することができる。
【００３５】
ある実施の形態では、サーバシステム１０２、第２のサーバシステム１４０、および/または１つまたは複数のクライアントデバイス１２０〜１２６のいずれかが、通信アプリケーションプログラムを提供することができる。通信プログラムは、システム（例えば、クライアントデバイスまたはサーバシステム）が他のデバイスと通信するためのオプションを提供することを可能にし得る。通信プログラムは、サーバシステムまたはクライアントデバイスに関連付けられたディスプレイデバイスに表示される１つまたは複数の関連付けられたユーザインターフェイスを提供することができる。ユーザインターフェイスは、通信モード、通信するユーザまたはデバイスなどを選択するための様々なオプションをユーザに提供し得る。通信プログラムは、たとえば、様々なフォーマットのいずれかで、送信されたコンテンツポストおよび受信されたコンテンツポストを表示またはそうでなければ出力することができる。
【００３６】
本明細書で説明する特徴の他の実施の形態は、任意のタイプのシステムおよび/またはサービスを使用することができる。例えば、ソーシャルネットワーキングサービスの代わりに、またはソーシャルネットワーキングサービスに加えて、他のネットワークサービス（例えば、インターネットに接続される）が使用され得る。任意の種類の電子デバイスは、本明細書に記載の特徴を利用することができる。ある実施の形態は、コンピュータネットワークから切断されるかまたは断続的に接続される１つまたは複数のクライアントデバイスまたはサーバデバイス上に、本明細書で説明される１つまたは複数の特徴を提供することができる。いくつかの例では、ディスプレイデバイスを含むか、またはディスプレイデバイスに接続されたクライアントデバイスは、当該クライアントデバイスにローカルなストレージデバイスに記憶された、たとえば、通信ネットワークを介して以前に受信された画像を表示することができる。
【００３７】
図２は、ある実施の形態に従って画像選択提案を提供するための例示的な方法を示すフロー図である。ある実施の形態では、方法２００は、たとえば、図１に示されるように、サーバシステム１０２上で実施され得る。ある実施の形態では、方法２００の一部または全部は、図１に示されるように、１つまたは複数のクライアントデバイス１２０，１２２，１２４，または１２６上で、１つまたは複数のサーバデバイス上で、および/またはサーバデバイスとクライアントデバイスの両方上で実施され得る。説明される例では、実施システムは、１つまたは複数のデジタルプロセッサまたは処理回路（「プロセッサ」）と、１つまたは複数の記憶デバイス（例えば、データベース１０６または他の記憶装置）とを含む。ある実施の形態では、１つまたは複数のサーバおよび/またはクライアントの異なる構成要素は、方法２００の異なるブロックまたは他の部分を実行することができる。いくつかの例では、第１のデバイスは、方法２００のブロックを実行するものとして説明される。ある実施の形態は、結果またはデータを第１のデバイスに送信することができる１つまたは複数の他のデバイス（例えば、他のクライアントデバイスまたはサーバデバイス）によって実行される方法２００の１つまたは複数のブロックを有することができる。
【００３８】
ある実施の形態では、方法２００または当該方法の一部は、システムによって自動的に開始され得る。ある実施の形態では、実施システムは第１のデバイスである。例えば、本方法（またはその部分）は、定期的に実行することができ、あるいは１つまたは複数の特定のイベントまたは条件、例えば、ユーザによって開始されるアプリケーション、ユーザによって選択される画像、および/または本方法によって読み取られる設定において指定され得る１つまたは複数の他の条件に基づいて実行することができる。ある実施の形態では、そのような条件は、格納された当該ユーザのカスタム選好においてユーザによって指定され得る。
【００３９】
一例では、クライアントデバイスは、カメラ、携帯電話、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス、または、コンテンツ入力（例えば、画像キャプチャ）を受信し、かつ、ユーザによる当該クライアントデバイスへのユーザ入力（例えば、タッチスクリーンを使用すること、ジェスチャを使用すること、マウスまたは他のポインティングデバイスを使用すること、キーボードを使用することなど。）を受信することができ、方法２００を実行することができる他のクライアントデバイスであり得る。別の例では、クライアントデバイスまたはサーバデバイスが方法２００を実行することができる。ある実施の形態は、ユーザ入力に基づいて方法２００を開始することができる。ユーザ（例えば、オペレータまたはエンドユーザ）は、例えば、ユーザインターフェイス、例えば、アプリケーションユーザインターフェイスまたは他のユーザインターフェイスから方法２００の開始を選択してもよい。ある実施の形態では、方法２００は、クライアントデバイスによって実施され得る。ある実施の形態では、方法２００は、サーバデバイスによって実施され得る。
【００４０】
本明細書で言及する画像は、１つまたは複数の画素値（例えば、色値、輝度値など。）を有するピクセルを有するデジタル画像を含むことができる。画像は、静止画像（例えば、静止写真、単一フレームを有する画像など。）、動画像（例えば、アニメーション、動画GIF、画像の一部分が動きを含み、他の部分が静止しているシネマグラフなど。）、およびビデオ（例えば、オーディオを含むことができる画像または画像フレームのシーケンス）であり得る。本明細書の残りは静止画像として画像を言及するが、本明細書で説明される技術は、動画像、ビデオなどに適用可能であることを理解されたい。たとえば、本明細書で説明する実施の形態は、静止画像（例えば、写真、絵文字、または他の画像）、ビデオ、または動画像）とともに使用され得る。テキストは、本明細書で参照されるように、英数字、絵文字、記号、または他の文字を含むことができる。
【００４１】
ブロック２０２では、方法２００の実施において、ユーザデータを使用するためにユーザの同意（例えば、ユーザ許可）が得られたかどうかがチェックされる。たとえば、ユーザデータは、クライアントデバイスを使用してユーザによってキャプチャされた画像、たとえば、クライアントデバイスを使用してユーザによって記憶またはアクセスされた画像、画像メタデータ、画像共有アプリケーションの使用に関連するユーザデータ、メッセージングアプリケーションの使用に関連するユーザデータ、金融アプリケーションの使用に関連するユーザデータ、ソーシャルネットワーキングアプリケーションの使用に関連するユーザデータ、ユーザ選好、ユーザバイオメトリック情報、ユーザ特性（同一性、名前、年齢、性別、職業など。）、ユーザのソーシャルネットワークおよび連絡先に関する情報、ソーシャルおよび他の種類のアクションおよびアクティビティ、ユーザによって作成または提出されたコンテンツ、格付け、および意見、ユーザの現在位置、過去のユーザデータ、ユーザによって生成、受信、および/またはアクセスされる画像、ユーザによって閲覧または共有される画像などを含み得る。本明細書で説明される方法の１つまたは複数のブロックは、ある実施の形態では、そのようなユーザデータを使用し得る。
【００４２】
方法２００においてユーザデータが使用され得る関連ユーザからユーザ同意が得られた場合、ブロック２０４において、本明細書の方法のブロックは、それらのブロックに関して記載されたようなユーザデータの可能な使用を用いて実施され得ると判定され、方法はブロック２１２に続く。ユーザの同意が得られていない場合、ブロック２０６において、ブロックがユーザデータを使用せずに実施されるべきであると決定され、方法はブロック２１２に続く。ある実施の形態では、ユーザの同意が得られていない場合、ブロックは、ユーザデータを使用せずに、合成データおよび/または汎用データもしくは公にアクセス可能かつ公的に使用可能なデータを用いて実施される。ユーザの同意が取得されていない場合、方法２００は実行されない。
【００４３】
方法２００のブロック２１２では、第１の画像の選択が受け取られる。例えば、ユーザの画像ライブラリからの複数の画像が、デバイスの表示画面に表示されてもよい。ある実施の形態では、画像サムネイルが表示され得、サムネイルの選択は、対応する画像の選択に対応し得る。例えば、画像またはサムネイルは、グリッド構成、例えば、１行当たり３つの画像、１行当たり４つの画像等で表示されてもよい。
【００４４】
ある実施の形態では、画像は、１つまたは複数の画像特性によって、たとえば、対応する画像に関連付けられた日付または時間によって、対応する画像に関連付けられたロケーション（たとえば、地理的ロケーション）によって、対応する画像が属する画像アルバムによって、などにより、グループ化され得る。ある実施の形態では、ユーザが、顔認識の使用、および/または画像内に描写される人物によって画像をグループ化する画像タグ付けの使用を許可する場合、画像は、例えば、「アンドリューとエニカ」、「アンドリューとジョイス」、「エニカ」などの人物によってグループ化され得る。ある実施の形態では、グループは、複数の画像特性または因子、たとえば、「森の小道にいるアンドリューとエニカ」、「ジョイスとの昨日」などを利用することができる。
【００４５】
ある実施の形態では、１つまたは複数の第１の画像の選択を示す第１のユーザ入力が受信される。ある実施の形態では、ユーザ入力を受信することは、タッチスクリーンに表示された画像上でのタップまたはプレスジェスチャを検出すること、音声入力、注視入力、入力デバイス（マウス、ジョイスティック、トラックパッドなど）の操作を検出することなどを含み得る。ユーザは、画面（例えば、画像サムネイルもしくは他の画像表現、または画像全体のディスプレイ）に表示された対応する画像要素を選択することによって、複数の画像のうちの１つまたは複数を選択することができる。ある実施の形態では、画像はスクロール可能であってもよく、またはユーザが当該複数の画像の様々なおよび/または追加の画像を選択することができるように、複数のページまたはセクションに編成されてもよい。１つまたは複数の第１の画像のユーザ選択を受信すると、方法はブロック２１４に進む。
【００４６】
ブロック２１４において、選択された画像の第１の画像特性、例えば、１つまたは複数の第１の画像が決定される。ある実施の形態では、第１の画像特性を決定することは、第１の画像に関連して記憶された画像メタデータから画像特性を検索することを含み得る。ある実施の形態では、第１の画像特性を決定することは、画像データベースから、たとえば、画像および画像特性をデータベースに格納する画像ライブラリから、画像特性を検索することを含み得る。
【００４７】
ある実施の形態では、第１の画像特性は、画像コンテンツ（例えば、第１の画像の画素値）および/または画像メタデータ（例えば、キャプチャの日付、キャプチャの位置、カメラ作成/モデル、カメラ設定、画像解像度、画像色深度など。）の分析に基づいて決定され得る。ある実施の形態では、画像コンテンツの分析は、たとえば、画像のユーザの選択を受信する前に、オフラインで実行され得る。例えば、ある画像の画像内容の分析は、当該画像が生成される（例えば、カメラを使用してキャプチャされ、スクリーンショットとしてキャプチャされる等の）とき、または、ライブラリに追加された（例えば、画像ライブラリを有するデバイス上にダウンロードまたは格納された）ときに実行され得る。
【００４８】
ある実施の形態では、第１の画像特性は、画像をプログラム的に分析することによって決定され得る。ある実施の形態では、第１の画像特性は、画像に関連する１つまたは複数のラベルを含み得る。ある実施の形態では、１つまたは複数のラベルは、画像ピクセル値および/または画像メタデータに基づくことができる。ある実施の形態では、１つまたは複数のラベルは、画像に関連する１つまたは複数のセマンティック概念を含み得る。ある実施の形態では、セマンティック概念は、概念の階層、たとえば、「食品→ケーキ→誕生日ケーキ」、「スポーツ→ベースボール→用具→バット」などに編成され得、範囲が狭い概念は、範囲が広い概念カテゴリに含まれ得る。画像に関連する任意の数のセマンティック概念が存在し得る。セマンティック概念は、画像内の１つまたは複数のオブジェクトを検出すること、焦点、照明レベル、画像合成、色分布などの画像属性、位置、時間、および他のメタデータなどのメタデータ、および他の因子のうちの１つまたは複数に基づいて決定され得る。ある実施の形態では、セマンティック概念は、画像からセマンティック概念を認識するようにトレーニングされた機械学習モデルを使用して決定され得る。
【００４９】
ある実施の形態では、画像特性、たとえば、１つまたは複数のラベルは、信頼スコアに関連付けられ得る。信頼スコアは、特定のラベルが画像に適用される信頼の程度を示し得る。１つまたは複数のラベルおよび対応する信頼スコアは、画像をプログラム的に分析することに基づくことができる。ある実施の形態では、画像をプログラム的に分析することは、トレーニングされた機械学習モデルを使用して実行され得る。ある実施の形態では、画像をプログラム的に分析することは、オブジェクト検出および認識技術を使用して実行され得る。ある実施の形態では、様々な画像分析技術の組合せが使用され得る。
【００５０】
ユーザが同意を提供するある実施の形態では、画像をプログラム的に分析することは、画像ピクセルデータから１つまたは複数のセマンティック概念を識別することを含み得る。例えば当該画像が、屋内で撮影されたか屋外で撮影されたかを判定することができる。別の例では、機械学習モデルは、画像が様々なオブジェクト、例えば、木、花、建物、河または海、山などのうちの１つまたは複数を示すかどうかを決定することができる。ある実施の形態では、機械学習モデルは、たとえば、「赤いバラ」、「１２階建ての建物」、「コーヒーショップ」、「バースデーケーキ」などに示されるオブジェクトの特定の特徴を決定することができる。
【００５１】
ユーザが同意を提供するある実施の形態では、画像内の１つまたは複数のオブジェクト、たとえば「タージマハル」、「ベースボールバット」、「アイスクリーム」などが認識され得る。ユーザが顔検出の使用の同意を提供する実施の形態では、画像が１人または複数の人物を示す（例えば、「画像は３人の人を有する」または「画像は２人の女性を示す」）かどうかを決定することができる。ユーザが顔認識技術の使用の同意を提供する実施の形態では、画像内の人、例えば「ジョイス」、「アンドリュー」等を認識してもよい。
【００５２】
ユーザが同意を提供するある実施の形態では、画像特性は、画像メタデータから決定され得る。例えば、そのような画像特性は、カメラ製造/型式、カメラ設定（例えば、絞り、フラッシュの使用、カメラモードなど。）、画像キャプチャの日付および/または時間、（ユーザが位置データの使用を許可する場合）画像キャプチャの位置を含み得る。
【００５３】
ユーザが同意を提供するある実施の形態では、１つまたは複数のセマンティック概念は、画像および/または画像メタデータで示されるオブジェクトに基づいて決定されてもよく、たとえば、フラッシュがオンにされて画像がキャプチャされるとき、示されるオブジェクトは、ダイニングテーブルおよび料理を含み、画像キャプチャの位置および時間は、当該画像が夜間にキャプチャされたことを示し、セマンティック概念は、「ディナー」および「屋内」であり得る。別の例では、画像が水およびボートを示すとき、「航海」というセマンティック概念は、当該画像に関連付けられてもよい。
【００５４】
画像内のオブジェクトの認識および/または画像に対応するセマンティック概念の決定時に、１つまたは複数のラベルを画像に関連付けることができる。画像特性、たとえば１つまたは複数のラベルは、たとえば画像ファイル内の画像メタデータとして、データベースに記憶され得る。例えば、関連付けられたラベルは「ジョイス、ディナー、屋内、家」、「ハイキング、ヨセミテ国立公園」等であり得る。
【００５５】
ある実施の形態では、画像特性は、画像タイプ、たとえば、画像をプログラム的に分析することに基づいて決定される「文書」、「レシート」、「スクリーンショット」、「写真」などを含み得る。ある実施の形態では、画像特性は、画像をプログラム的に分析することに基づいて決定された画像属性、たとえば、「不鮮明」、「暗」などを含み得る。ブロック２１４の後には、ブロック２１６が続くことができる。
【００５６】
ブロック２１６では、画像ライブラリ内の１つまたは複数の第２の画像が識別される。ある実施の形態では、１つまたは複数の第２の画像は、ユーザによって選択された１つまたは複数の第１の画像のうちの１つまたは複数の第１の画像特性の画像特性と同じまたは類似する少なくとも１つの画像特性を有し得る。例えば、ユーザが不鮮明な第１の画像を選択した場合、不鮮明という画像特性にそれぞれ関連付けられる１つまたは複数の第２の画像が識別される。
【００５７】
別の例では、ユーザが文書の２つの画像（例えば、文書であると判定されたテキストまたは視覚コンテンツを示す画像）を選択した場合、それぞれが画像特性「文書」に関連する１つまたは複数の第２の画像が識別される。別の例では、ユーザがスクリーンショット（例えば、デバイスの表示画面のコンテンツのキャプチャ）である２つの画像を選択した場合、各スクリーンショットである１つまたは複数の第２の画像が識別され、例えば画像特性「スクリーンショット」に関連付けられる。別の例では、ユーザが、２人の個人、例えば、ジョイスおよびアンドリューを示す画像を選択した場合、それぞれ「ジョイス」および「アンドリュー」のうちの少なくとも１つの画像ラベルに関連する１つまたは複数の第２の画像が識別される。
【００５８】
別の例では、第１の画像のうちの１つまたは複数が場所、たとえば「タージマハル」に関連付けられている場合、同じまたは同様の場所、たとえば「タージマハル」、「アグラ」などに関連付けられている１つまたは複数の第２の画像が選択され得る。ある実施の形態では、１つまたは複数の第２の画像は、第２の画像に関連付けられた場所が、第１の画像に関連付けられた位置の閾値距離内にあるように選択され得る。例えば、閾値距離は、数値距離、例えば「５マイル」であり得る。ある実施の形態では、１つまたは複数の第２の画像は、場所、たとえば、市名、国名などのマッチングに基づいて選択され得る。ある実施の形態では、１つまたは複数の第２の画像は、第１の場所で第１の画像によって描写されるものと同じ特性のうちの１つまたは複数を示す画像、たとえば、モニュメント、ブリッジ、または摩天楼などに基づいて選択され得る。
【００５９】
ある実施の形態では、画像選択のコンテキストが決定され得る。例えば、ユーザが第１のユーザ入力を与えるユーザインターフェイスは、例えば画像コラージュ、画像ライブラリ内の画像に基づくビデオ、画像アルバム、または印刷された出版物、例えばフォトブックなど、１つまたは複数のデバイスによって画像ベースの創作物を生成することに関連付けられていると決定され得る。ある実施の形態では、画像選択のコンテキストは、画像選択のためのユーザインターフェイスが開始された、関連付けられたターゲットソフトウェアアプリケーション、たとえば、メッセージングアプリケーション、画像共有またはソーシャルネットワーキングアプリケーション、金融アプリケーションなどであってもよく、または、これらに基づいてもよい。
【００６０】
画像選択のコンテキストが決定される実施の形態では、１つまたは複数の第２の画像を識別することは、コンテキストに基づいてもよい。たとえば、コンテキストは、第２の画像を選択するための１つまたは複数の選択基準と（たとえば、ブロック２１６の前に）関連付けられ得る。たとえば、コンテキストが、画像共有アプリケーションを介してフォトブックを生成することまたは共有することとして決定される場合、１つまたは複数の第２の画像は、そのコンテキストに関連付けられる品質基準、たとえば、画像解像度基準、画像色深度基準、画像焦点基準などに基づいて選択され得る。いくつかの例では、画像解像度閾値基準を満たさない画像は、そのような画像が第１の画像特性に合致する特性を有する場合であっても、１つまたは複数の第２の画像から除外され得る。別の例では、コンテキストが金融アプリケーションとして決定される場合、ある特性、たとえば、画像タイプ「レシート」、「請求書」、「財務諸表」、「文書」などを有する画像を１つまたは複数の第２の画像に含めることができ、他の画像を除外することができる。
【００６１】
ある実施の形態では、１つまたは複数の第２の画像は、第１の画像の画像特性に一致するいくつかの画像特性に基づいて選択またはフィルタリングされる。例えば、第１の画像が「ビーチにいるジョイスとアンドリュー」を示す場合、第２の画像は、３つの特性「ジョイス」、「アンドリュー」および「ビーチ」のうちのどれだけ多くが第２の画像の各々に関連するかに基づいて選択されてもよい。一例では、画像ライブラリが、３つの特性の全てを有する画像Ａ、画像Ｂ、および画像Ｃと、３つの特性のうちの２つを有するさらなる画像Ｄ，ＥおよびＦとを含む場合、画像Ａ，ＢおよびＣは、１つまたは複数の第２の画像として選択されてもよく、画像Ｄ，ＥおよびＦは、第２の画像から除外されてもよい。ある実施の形態では、画像Ａ〜Ｆは、第２の画像に含まれ、３つの特性のうちの１つだけを有する画像を含む他の画像は、第２の画像から除外される。
【００６２】
ある実施の形態では、信頼閾値を使用して、１つまたは複数の第２の画像をフィルタリングすることができる。例えば、第１の画像が、９０%の信頼スコアを有する特性「レシート」に関連付けられる場合、少なくとも９０%の信頼スコアを有する特性「レシート」に関連付けられる第２の画像が選択され得る。この例では、より低い信頼スコアを有する画像は、画像が特性「レシート」に関連付けられる場合であっても、１つまたは複数の第２の画像から除外され得る。ある実施の形態では、第１の画像の画像特性に一致する特性の数と、特性に関連する信頼スコアとの組合せを使用して、１つまたは複数の第２の画像を選択することができる。ある実施の形態では、各画像特性は、１つまたは複数の第２の画像を決定するために重み付けされ得る。例えば、「タージマハル」または「ジョイス」などのラベルなどのいくつかの特性は、他の特性、例えば「屋外」より高い重みを割り当てられ得る。
【００６３】
ある実施の形態では、ユーザが、画像選択に関連するユーザデータおよびユーザによって生成される画像ベースの創作物の使用の同意を提供するとき、そのようなデータは、１つまたは複数の第２の画像を選択するために使用され得る。ユーザが、例えばフォトブックなどの、花の写真を含む印刷された出版物を以前に生成した場合、花を示す１つまたは複数の第２の画像が含まれ得る。この例では、以前のフォトブックに含まれていた画像は、たとえば、ユーザが最近キャプチャされた画像を含むフォトブックを定期的に生成することをユーザデータが示す場合、除外され得る。
【００６４】
別の例では、ユーザが、あるタイプの写真、たとえば、人間の顔を描写しない写真を選択する提案を以前に無視している場合、そのような画像は、１つまたは複数の第２の画像から除外され得る。別の例では、ユーザが特定の個人、例えば、家族、ペットなどの画像を含む写真コラージュを生成することをユーザデータが示す場合、その個人を示す画像は、１つまたは複数の第２の画像において選択されてもよく、その個人を描写しない画像は除外されてもよい。ある実施の形態では、たとえば、高い不鮮明さ、暗い画像、低品質画像、アーカイブ画像など、ある特性をもつ画像は、そのような画像が１つまたは複数の第１の画像に一致する特性を有する場合であっても、１つまたは複数の第２の画像から除外され得る。
【００６５】
ある実施の形態では、たとえば、ユーザが画像ベースの創作物がビデオであることを示すとき、１つまたは複数の第２の画像は、他の画像ベースの創作物、たとえば、画像コラージュのために除外され得る、動きを伴うビデオクリップまたは画像を含み得る。ある実施の形態では、ビデオクリップは、非視覚パラメータ、たとえば、ビデオクリップの長さ、ビデオクリップの決定された音声部分に対するセマンティック概念またはラベルなどに基づいて選択され得る。ブロック２１６の後にはブロック２１８が続くことができる。
【００６６】
ブロック２１８では、ユーザインターフェイスが表示させられる。たとえば、ユーザインターフェイスは、クライアントデバイス１２０〜１２４のいずれかによって表示され得る。ユーザインターフェイスは、１つまたは複数の第２の画像を含み得る。例えば、ユーザインターフェイスは、例えば、画像のグリッドの表示を含むカードまたはオーバーレイとして表示されてもよい。ある実施の形態では、１つまたは複数の第２の画像は、これらの画像が提案された選択であることの表示とともに表示され得、たとえば、ユーザインターフェイスの「提案」セクションに表示され得る。１つまたは複数の第２の画像は、ユーザ選択可能である。ある実施の形態では、ユーザインターフェイスはまた、ユーザが選択可能な他の画像、たとえば、現在の時間の直前の特定の時間内にキャプチャまたは受信されて、１つまたは複数の第２の画像には含まれない最近の画像を含み得る。ある実施の形態では、他の画像は、「提案」セクションとは別個のユーザインターフェイスのセクション、たとえば、「最近」セクションにグループ化され得る。ある実施の形態では、現在選択されている画像は、ユーザインターフェイスのセクション、たとえば「選択トレイ」セクションに表示され得る。「選択トレイ」は、第１の画像およびユーザによる選択に利用できる１つまたは複数の追加の画像を含むユーザインターフェイスの他の部分とは別個であってもよい。ブロック２１８の後には、ブロック２２０が続くことができる。
【００６７】
ブロック２２０では、さらなる画像選択が受信されたかどうかが判定される。例えば、さらなる画像選択は、第２のユーザ入力を介して受信され得る。ある実施の形態では、さらなる画像選択によって示される画像は、１つまたは複数の第２の画像のうちの少なくとも１つを含み得る。ある実施の形態では、さらなる画像選択によって示される画像は、１つまたは複数の最近の画像のうちの少なくとも１つを含み得る。さらなる画像選択が受信された場合、方法はブロック２１４に進む。ある実施の形態では、画像ライブラリ内の１つまたは複数の第３の画像が識別され得る。たとえば、１つまたは複数の第３の画像は、さらなる画像選択から、たとえば、１つまたは複数の第２の画像から、および/またはユーザインターフェイスに表示された他の画像から、選択された画像の特性を決定することに基づいて識別され得る。
【００６８】
１つまたは複数の第３の画像は、（第１のユーザ入力において選択された）第１の画像の特性と第２のユーザ入力を介して選択された画像とのマッチングによって識別され得る。たとえば、１つまたは複数の第３の画像は、第３の画像の各々が、選択された画像の特性に一致する少なくとも１つの特性、たとえば、第１の画像のうちの１つまたは複数に関連付けられ、第２の画像のうちの１つまたは複数に関連付けられる少なくとも１つの特性を有するように識別され得る。例えば、（第１のユーザ入力によって選択された）第１の画像が「ビーチにいるジョイスとアンドリュー」（例えば、ラベル「ジョイス」、「アンドリュー」、「ビーチ」に関連する）を示し、（第２のユーザ入力によって選択された）選択された画像が「ジョイスとアンドリュー」を示す場合、１つまたは複数の第３の画像を、ジョイスおよびアンドリューの両方を示す画像ライブラリ内の画像として識別することができる。この例では、第３の画像を識別しながら「ビーチ」特性は考慮されない。
【００６９】
異なる実施の形態では、１つまたは複数の第３の画像は、１つまたは複数の第２の画像を選択するために使用されるものと同様の技術を使用して選択され得る。１つまたは複数の第３の画像が識別される実施の形態では、ユーザインターフェイスは、１つまたは複数の第３の画像を含めるように更新され得る。たとえば、ユーザインターフェイスを更新することは、１つまたは複数の第２の画像の代わりに、またはそれに加えて１つまたは複数の第３の画像を表示するために「提案」セクションを更新することを含み得る。ある実施の形態では、１つまたは複数の第３の画像を識別すると、「提案」セクションは、ユーザインターフェイスの他のセクション（たとえば、「最近」）より高い優先度で表示され得る。
【００７０】
ある実施の形態では、画像の追加の選択を示すさらなるユーザ入力が受信され得（例えば、ブロック２１４〜２２０の反復による）、それに応答して、ユーザインターフェイスは、画像ライブラリ内の画像の画像特性と、ユーザ入力によって選択された画像の画像特性とのマッチングに基づいて、追加の画像を含むように更新され得る。さらなる画像選択が受信されない場合、ブロック２２０の後にブロック２２２が続くことができる。
【００７１】
ブロック２２２では、１つまたは複数のアクション（たとえば、オペレーション）のユーザ選択が、たとえば、ユーザインターフェイスを介して受け取られる。ユーザが選択したアクションは、ユーザが選択した画像を使用して実行される。例えば、ユーザは、選択された画像、例えば、第１のユーザ入力、第２のユーザ入力、およびもしあればその後のユーザ入力によって示される画像選択に基づいて、画像ベースの創作物（例えば、コンテンツの創作物）が生成されることを示すことができる。例えば、画像ベースの創作物は、画像コラージュ、選択された画像を例えばショートビデオクリップまたはスライドショーとして示すビデオ、選択された画像を含む画像アルバム、または選択された画像を含む、印刷された出版物、例えばフォトブックを含み得る。
【００７２】
別の例では、ユーザによって選択された１つまたは複数のアクションは、選択された画像をターゲットソフトウェアアプリケーション、たとえばメッセージングアプリケーション、画像共有アプリケーション、ソーシャルネットワーキングアプリケーション、金融アプリケーションなどに提供することとすることができる。この例では、選択された画像は、例えば、アプリケーションプログラミングインターフェイス（ＡＰＩ）を介して、ターゲットソフトウェアアプリケーションに提供される。ある実施の形態では、選択された画像は、画像をターゲットソフトウェアアプリケーションに提供する前に修正され得る（例えば、自動的に強化され、トリミングされ、ファイルサイズが縮小される等。）。
【００７３】
ある実施の形態では、ユーザによって選択された１つまたは複数のアクションは、たとえば、画像ライブラリ内の画像に対する修正を実行するための、画像ライブラリアプリケーションのためのアクションであり得る。例えば、ユーザが、互いまたは他の画像の複製を含む画像を選択（例えば、全てが１つまたは複数の他の選択された画像に類似する主題を描写し、類似のメタデータに関連付けられるか、または、ライブラリ内の１つまたは複数の他の画像に類似する主題を描写する画像を選択）した場合、アクションは、複製を削除することであり得る。例えば、他の複製画像よりもスコアの低い画像特性を有する複製画像は、例えば、不鮮明さ、露出、色ノイズ、画像境界に対するオブジェクト位置などの視覚的特性に基づいて削除することができる。別の例では、ユーザが１つまたは複数の共通特性（例えば、「暗」、「非強調」である）をそれぞれ有する画像を選択する場合、アクションは、たとえば、画像フィルタを適用することによって、画像強調のためにトレーニングされた機械学習モデルを使用して画像を修正することによって等の、たとえば、画像強調技法を使用してピクセル値を修正することによる、選択された画像の自動強調を実行することなどであり得る。
【００７４】
ある実施の形態では、アクションは、選択された画像をアーカイブすることであってよく、これにより、選択された画像が、画像ライブラリの画像のうちの１つまたは複数のビュー、たとえば、メインビューから隠される。例えば、選択された画像に関連するラベルは、選択された画像がアーカイブされていることを示すように更新され得る。アーカイブされた画像は、例えば、ユーザ入力を介して、アーカイブされた画像を見るためのコマンドが受信された場合に、表示され得る。ある実施の形態では、アーカイブされる画像に関連する画像メタデータまたはラベルは、画像がアーカイブされることを示すために更新され得る。そのようなメタデータまたはラベルは、たとえば、画像ライブラリ内の画像のメインビューを生成する際に、メインビューからアーカイブされた画像を除外するために使用され得る。
【００７５】
ある実施の形態では、１つまたは複数のアクションは、ユーザインターフェイスに表示された提案されたアクション要素に対応するアクションを含み得る。これらの実施の形態では、提案されたアクション要素は、選択された画像、たとえば、第１の画像のうちの１つまたは複数および第２の画像のうちの１つまたは複数に基づいて決定され得る。ある実施の形態では、提案されたアクション要素に関連付けられたアクションは、選択された画像をアーカイブすること、選択された画像を削除すること（例えば、画像ライブラリから選択された画像を除去すること、ストレージから画像を削除することなど。）、または選択された画像の自動拡張を実行することのうちの１つまたは複数を含み得る。
【００７６】
例えば、選択された画像は「不鮮明な」という画像特性を有すると判定され得る。決定に基づいて、提案されたアクション要素、例えば「全ての不鮮明を削除」が表示される。ユーザが提案されたアクション要素を選択した場合、対応するアクションは、例えば、デバイスによって実行されてもよい。ある実施の形態では、選択された画像に一致する追加の画像、たとえば、ライブラリ内の他の不鮮明な画像であって、選択された画像と同じ場所またはその近くで、かつ同様の時間に撮影された他の画像を含めることができ、選択されたアクションは、ユーザ選択された画像と、選択された画像に一致する追加の画像とに対して実行される。
【００７７】
方法２００は、図２の様々なブロックを参照して説明されてきたが、本開示で説明する技術は、図２のブロックのいくつかを実行せずに実行され得ることを理解されたい。ある実施の形態では、図２に示されるブロックのうちの１つまたは複数が組み合わされ得る。例えば、ブロック２１４，２１６および２１８のうちの２つ以上が組み合わされてもよい。様々な実施の形態では、方法２００のブロックのうちのいくつかは、並列に、または図２に示されるものとは異なる順序で実行され得る。ある実施の形態では、方法２００は、クライアントデバイス、たとえば、クライアントデバイス１２０〜１２４のうちの１つまたは複数によって実行される。ある実施の形態では、方法２００は、サービスデバイス、たとえば、サーバデバイス１０４によって実行される。ある実施の形態では、方法２００は、クライアントデバイスとサーバデバイスとの組合せによって実行される。例えば、ある実施の形態では、ブロック２０２，２０４，２０６，２１２，２１８および２２０は、クライアントデバイスによって実行され、ブロック２１４，２１６および２２２は、サーバデバイスによって実行される。例えば、このようなアプローチは、クライアントデバイス１２０が、例えば、画像をプログラム的に分析することによって画像特性を決定する能力が限られている場合、画像データを記憶する記憶容量が限られている場合などに有用であり得る。
【００７８】
図３は、ある実施の形態による、画像選択提案を提供するための方法３００の一例を示すフロー図である。ある実施の形態では、方法３００は、たとえば、図１に示されるように、サーバシステム１０２上で実施され得る。ある実施の形態では、方法３００の一部または全部は、図１に示されるように、１つまたは複数のクライアントデバイス１２０，１２２，１２４または１２６上で、１つまたは複数のサーバデバイス上で、および/またはサーバデバイスとクライアントデバイスとの両方上で実施され得る。説明される例では、実施システムは、１つまたは複数のデジタルプロセッサまたは処理回路（「プロセッサ」）と、１つまたは複数の記憶デバイス（例えば、データベース１０６または他の記憶装置）とを含む。ある実施の形態では、１つまたは複数のサーバおよび/またはクライアントの異なる構成要素は、方法３００の異なるブロックまたは他の部分を実行することができる。いくつかの例では、第１のデバイスは、方法３００のブロックを実行するものとして説明される。ある実施の形態は、結果またはデータを第１のデバイスに送信することができる１つまたは複数の他のデバイス（例えば、他のクライアントデバイスまたはサーバデバイス）によって実行される方法３００の１つまたは複数のブロックを有することができる。
【００７９】
ある実施の形態では、方法３００または当該方法の一部は、システムによって自動的に開始され得る。ある実施の形態では、実施システムは第１のデバイスである。例えば、本方法（またはその部分）は、定期的に実行することができ、あるいは１つまたは複数の特定のイベントまたは条件、例えば、アプリケーションがユーザによって開始されること、画像がユーザによって選択されること、および/または本方法によって読み取られる設定において指定され得る１つまたは複数の他の条件が発生することに基づいて実行することができる。ある実施の形態では、そのような条件は、ユーザの格納されたカスタム選好においてユーザによって指定され得る。
【００８０】
一例では、クライアントデバイスは、カメラ、携帯電話、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス、または、ユーザによるクライアントデバイスへのコンテンツ入力（たとえば、画像キャプチャ）およびユーザ入力（例えば、タッチスクリーンを使用すること、ジェスチャを使用すること、マウスまたは他のポインティングデバイスを使用すること、キーボードを使用することなど。）を受信することができ、方法３００を実行することができる他のクライアントデバイスとすることができる。別の例では、クライアント装置またはサーバ装置が方法３００を実行することができる。ある実施の形態は、ユーザ入力に基づいて方法３００を開始することができる。ユーザ（例えば、オペレータまたはエンドユーザ）は、例えば、ユーザインターフェイス、例えば、アプリケーションユーザインターフェイスまたは他のユーザインターフェイスから方法３００の開始を選択してもよい。ある実施の形態では、方法３００は、クライアントデバイスによって実施され得る。ある実施の形態では、方法３００は、サーバデバイスによって実施され得る。
【００８１】
ブロック３０２において、方法３００の実施において、ユーザデータを使用するためにユーザの同意（例えば、ユーザ許可）が得られたかどうかがチェックされる。たとえば、ユーザデータは、クライアントデバイスを使用してユーザによってキャプチャされた画像、たとえば、クライアントデバイスを使用してユーザによって記憶またはアクセスされた画像、画像メタデータ、画像共有アプリケーションの使用に関連するユーザデータ、メッセージングアプリケーションの使用に関連するユーザデータ、金融アプリケーションの使用に関連するユーザデータ、ソーシャルネットワーキングアプリケーションの使用に関連するユーザデータ、ユーザ選好、ユーザバイオメトリック情報、ユーザ特性（同一性、名前、年齢、性別、職業など。）、ユーザのソーシャルネットワークおよび連絡先に関する情報、ソーシャルおよび他の種類のアクションおよびアクティビティ、ユーザによって作成または提出されたコンテンツ、格付け、および意見、ユーザの現在位置、履歴ユーザデータ、ユーザによって生成、受信、および/またはアクセスされた画像、ユーザによって閲覧または共有された画像などを含み得る。本明細書で説明する方法の１つまたは複数のブロックは、ある実施の形態では、そのようなユーザデータを使用し得る。
【００８２】
方法３００においてユーザデータが使用され得る関連ユーザからユーザ同意が得られた場合、ブロック３０４において、本明細書の方法のブロックは、それらのブロックに関して記載されたようなユーザデータの可能な使用を用いて実施され得ると判定され、方法はブロック３１２に続く。ユーザの同意が取得されていない場合、ブロックがユーザデータを使用せずに実施されるべきであるとブロック３０６において決定され、方法はブロック３１２に続く。ある実施の形態では、ユーザの同意が得られていない場合、ブロックは、ユーザデータを使用せずに、合成データおよび/または汎用データもしくは公にアクセス可能かつ公的に使用可能なデータを用いて実施される。ユーザの同意が取得されていない場合、方法３００は実行されない。
【００８３】
方法３００のブロック３１２において、ターゲットソフトウェアアプリケーションを示すコンテキスト情報が決定される。たとえば、方法３００が、ユーザが画像ベースの創作物、たとえば、画像アルバム、画像コラージュ、ビデオ、または印刷された出版物を生成することを可能にする画像ライブラリアプリケーションの一部として実施されるとき、コンテキスト情報は、画像創作物のタイプを含み得る。
【００８４】
別の例では、方法３００が、たとえば、アプリケーションプログラミングインターフェイス（ＡＰＩ）を介して他のアプリケーションとの対話をサポートする画像ライブラリアプリケーションの一部として実施されるとき、コンテキスト情報を決定することは、画像ライブラリアプリケーションを呼び出すアプリケーションのアプリケーションタイプ、たとえば、画像共有アプリケーション（例えば、スタンドアロン型画像共有アプリケーション、ソーシャルネットワーキングアプリケーションなど。）、金融アプリケーション（例えば、経費管理アプリケーション、請求書発行アプリケーションなど。）、メッセージアプリケーション（例えば、チャットまたはインスタントメッセージングアプリケーション、電子メールアプリケーション、コラボレーションアプリケーションなど。）を決定することを含む。本例では、画像ライブラリアプリケーションを呼び出すアプリケーションが、ターゲットソフトウェアと呼ばれる。
【００８５】
さらに、ある実施の形態では、コンテキスト情報を決定することは、ターゲットソフトウェアアプリケーションから、選択されるべきいくつかの画像、たとえば、１つの画像、２つの画像などを受信することを含み得る。別の例では、そのようなコンテキスト情報は、選択されるべき画像のタイプ、たとえば、動きを伴う画像（たとえば、ビデオクリップ）、特定のアスペクト比および/または向きの画像（例えば、正方形、縦向き、横向きなど。）、静止画像、動画像などを含み得る。
【００８６】
別の例では、ユーザの同意が得られた場合、コンテキスト情報を決定することは、メッセージング会話（たとえば、電子メール受信者）における参加者の識別情報（例えば、ユーザ名、ログインID等のユーザ識別子。）、画像共有アプリケーションを介して共有されている以前の画像の特性（例えば、風景画像、食品画像、自己画像など。）などを受信することを含み得る。別の例では、コンテキスト情報は、例えば経費報告を提出する、請求書を生成するなど、金融アプリケーションなどのターゲットソフトウェアアプリケーションを使用して実行されるユーザ活動を含み得る。
【００８７】
ある実施の形態では、ターゲットソフトウェアアプリケーションは、ＡＰＩを介してコンテキスト情報を提供することができる。ある実施の形態では、ユーザの同意が得られた場合、コンテキスト情報は、１つまたは複数の画像特性、たとえば、ユーザの画像ライブラリ内の画像と関連付けられた画像特性とマッチすることができる「自己画像」、「レシート」、「休暇」などとして提供され得る。そのような画像特性は、ユーザの同意が得られた場合、画像コンテンツ（たとえば、描写された画像特徴）および/または画像メタデータ（例えば、キャプチャの時間、キャプチャの位置、キャプチャしたカメラの属性および設定など。）に基づくことができる。ある実施の形態では、コンテキスト情報は、セマンティック概念、たとえば、「経費報告」、「アンドリューとのチャット会話」などとして提供され得る。
【００８８】
ユーザが同意を提供するとき、コンテキスト情報は、ターゲットソフトウェアアプリケーションからのアプリケーションコンテキストを含み得る。例えば、アプリケーションコンテキストは、メッセージングアプリケーションを介して行われる会話に関連する会話またはセマンティック概念の概要、金融アプリケーションにおける準備中の経費報告の期間などを含み得る。例えば、アプリケーションコンテキストは、「この会話は、バリにおける休暇に関する」「２０１７年１１月の経費報告」等を含むことができる。ブロック３１２の後にはブロック３１４が続くことができる。
【００８９】
ブロック３１４では、１つまたは複数の第１の画像がコンテキスト情報に基づいて識別される。例えば、第１の画像は、コンテキスト情報を画像ライブラリ内の画像の画像特性とマッチングすることに基づくことができる。ある実施の形態では、マッチングは、ターゲットアプリケーションのアプリケーションタイプに基づいてもよい。例えば、ブロック３１４の前に、特定の画像特性を特定の種類のアプリケーションに関連付けることができる。例えば、アプリケーションタイプが「財務アプリケーション」である場合、画像が「レシート」、「文書」、「スクリーンショット」などであることを示すラベルに関連付けられている画像は、、１つまたは複数の第１の画像として選択されてもよく、他の特性（例えば、ラベル）を有する画像、例えば、「写真」、「映像」等は除外され得る。
【００９０】
ある実施の形態では、第１の画像は、コンテキスト情報内で指定された画像特性および/またはセマンティック概念を画像ライブラリ内の画像の画像特性にマッチングさせることに基づくことができる。たとえば、アプリケーションタイプがメッセージングアプリケーションであり、コンテキスト情報がメッセージング会話における参加者の識別情報を含み、たとえば、コンテキスト情報が、メッセージングアプリケーションによって提供されるチャット会話がユーザアンドリューおよびジョイスを含むことを指定する場合、アンドリューおよびジョイスのうちの少なくとも１つを示す画像が、第１の画像として選択され得る。
【００９１】
別の例では、アプリケーションコンテキストが、メッセージングアプリケーションによって提供されるチャット会話はバリにおける休暇についてであることを指定する場合、１つまたは複数のセマンティック概念が、アプリケーションコンテキストに基づいて決定される。例えば、セマンティック概念は、「休暇」、「バリ」、「ビーチ」、「インドネシア」、「寺」等を含むことができる。アプリケーションコンテキストから決定されるか、またはアプリケーションコンテキスト内で指定されたセマンティック概念に関連付けられる画像は、第１の画像として選択され得る。別の例では、コンテキスト情報が２０１７年１１月の経費報告を指定する場合、２０１７年１１月に対応する関連したタイムスタンプを有するレシートの画像を第１の画像として選択することができる。ブロック３１４の後には、ブロック３１６が続くことができる。
【００９２】
ブロック３１６では、第１の画像を含むユーザインターフェイスが表示される。たとえば、ユーザインターフェイスは、クライアントデバイス１２０〜１２４のいずれかによって表示され得る。ユーザインターフェイスは、ブロック２１８を参照して上述したユーザインターフェイスと同様に、ユーザが第１の画像のうちの１つまたは複数を選択することを可能にする。ブロック３１６の後には、ブロック３１８が続くことができる。
【００９３】
ブロック３１８では、表示された画像（たとえば、第１の画像）のうちの１つまたは複数のユーザの選択が受け取られる。例えば、ブロック３１８は、図２のブロック２１２と同様であり得る。ブロック３１８の後には、ブロック３２０が続くことができる。
【００９４】
ブロック３２０では、ブロック３１８で選択された画像の画像特性が、例えば、上述のブロック２１４と同様の方法で決定される。ブロック３２０の後には、ブロック３２２が続くことができる。
【００９５】
ブロック３２２では、１つまたは複数の追加の画像が識別される。ある実施の形態では、追加の画像は、ブロック３２０で決定された画像特性に基づいて識別され得る。例えば、ユーザ選択がラベル「バリ」および「アンドリュー」に関連付けられた画像に対応する場合、ラベルのうちの少なくとも１つを有する追加画像が識別される。ある実施の形態では、追加の画像を識別することは、たとえば、上述のブロック３１４と同様に、ブロック３２０で決定された画像特性およびコンテキスト情報に基づく。ブロック３２２の後にブロック３２４が続くことができる。
【００９６】
ブロック３２４において、ユーザインターフェイスは、１つまたは複数の追加の画像を含むように更新される。例えば、１つまたは複数の追加画像は、第１画像の代わりに、または第１画像に加えて表示されてもよい。ある実施の形態では、更新されたユーザインターフェイスは、ユーザによって選択された画像を含むセクション、たとえば「選択トレイ」セクションを含み得る。「選択トレイ」は、第１の画像およびユーザによる選択に利用できる１つまたは複数の追加の画像を含む、ユーザインターフェイスの他の部分とは別個であってもよい。他の特徴は、図２のブロック２１８に関して説明したものと同様に提供することができる。ブロック３２４の後には、ブロック３２６が続くことができる。
【００９７】
ブロック３２６では、さらなる画像選択がユーザから、たとえば更新されたユーザインターフェイスに表示された画像から受信されたかどうかが判定される。さらなる画像選択が受信された場合、方法はブロック３２０に進み、ユーザによって選択された追加画像の画像特性が決定される。ブロック３２０〜３２６を繰り返して、追加の画像選択提案をユーザに提供することができる。さらなる画像選択が受信されない場合、方法はブロック３２８に進む。
【００９８】
ブロック３２８では、ユーザによって選択された画像が、ターゲットソフトウェアアプリケーションに提供される。例えば、ターゲットソフトウェアアプリケーションが画像ライブラリアプリケーションである場合、選択された画像は、画像ベースの創作物に利用されるべき画像として提供されてもよい。別の例では、ターゲットソフトウェアアプリケーションが画像共有またはメッセージングアプリケーションである場合、選択された画像は、画像が画像共有またはメッセージングアプリケーションを介して１つまたは複数の他のデバイスに（たとえば、ネットワークを介して）送信するために利用可能となるように提供され得る。ある実施の形態では、選択された画像は、画像をターゲットソフトウェアアプリケーションに提供する前に、処理され、たとえば、自動的に強調され、トリミングされ、圧縮され、異なるフォーマットに変換され得る。ある実施の形態では、画像の処理は、ターゲットソフトウェアアプリケーションから受信されたコンテキスト情報に基づいてもよい。
【００９９】
方法３００は、図３の様々なブロックを参照して説明されてきたが、本開示で説明する技術は、図３のブロックのいくつかを実行せずに実行され得ることを理解されたい。ある実施の形態では、図３に示されるブロックのうちの１つまたは複数が組み合わされ得る。例えば、ブロック３１４，３１６および３１８のうちの２つ以上が組み合わされてもよい。別の例では、ブロック３２０，３２２および３２４のうちの２つ以上が組み合わされてもよい。様々な実施の形態では、方法３００のブロックのうちのいくつかは、並列に、または図３に示されるものとは異なる順序で実行され得る。
【０１００】
ある実施の形態では、方法３００は、クライアントデバイス、たとえば、クライアントデバイス１２０〜１２４のうちの１つまたは複数によって実行される。ある実施の形態では、方法３００は、サービスデバイス、たとえば、サーバデバイス１０４によって実行される。ある実施の形態では、方法３００は、クライアントデバイスとサーバデバイスとの組合せによって実行される。例えば、ある実施の形態では、ブロック３０２，３０４，３０６，３１２，３１８，３２６および３２８は、クライアントデバイスによって実行され、ブロック３１４，３１６，３２０，３２２および３２４は、サーバデバイスによって実行される。例えば、このようなアプローチは、クライアントデバイス１２０が、例えば、画像をプログラム的に分析することによって画像特性を決定する能力が限られている場合、画像データを記憶する記憶容量が限られている場合などに有用であり得る。
【０１０１】
図４は、ある実施の形態による、画像選択提案を含む例示的なユーザインターフェイス４００の概略図である。様々な実施の形態では、ユーザインターフェイス４００は、ディスプレイデバイスによって、たとえば、ある実施の形態では、図１のクライアントデバイス１２０、１２２、１２４および/または１２６の表示画面によって、またはサーバシステム１０２によって表示され得る。
【０１０２】
図４に示されるように、ユーザの画像ライブラリの一部分がユーザインターフェイスに表示される。図４に示される例では、画像ライブラリからの９つの画像が示されている。図４は、１行当たり３つの正方形画像を有する画像の３つの行を示すが、利用可能な画面空間に基づいて、グリッド内の任意の数の行および列を使用することができる。さらに、異なる実施の形態は、他の構成または配列で画像を表示してもよい。ある実施の形態では、ライブラリからのより多いまたはより少ない画像が示され得る。ある実施の形態では、画像は、画像に関連付けられたタイムスタンプに基づいて、特定の順序、たとえば、時系列の逆の順序で編成され得る。
【０１０３】
図４に示される例では、ユーザは、画像上のチェックマーク４０２によって示されるように、最上段の行の最も左の画像を選択した。図４から分かるように、ユーザによって選択された画像（例えば、第１の画像）は、写真ID（「Jane Doe（身元不明の女性の仮称）」）である。本明細書で説明する技術を使用して、ユーザ選択された画像に基づく１つまたは複数の提案された画像選択（たとえば、第２の画像）がユーザインターフェイスに表示される。例えば、提案された画像選択は、ユーザインターフェイス内の３つの他の画像上の対応するチェックマーク４０４，４０６および４０８によって示される。提案された画像選択は、写真ID（ＸＹＺ社のJohn Doe（身元不明の男性の仮称））の画像およびレシートの２つの画像に対応する。この例における提案された画像選択は、第１の画像（例えば、「文書」、「アイデンティティカード」）の画像特性を画像ライブラリ内の他の画像のものと一致させることに基づく。
【０１０４】
ユーザインターフェイス４００は、提案されたアクション要素４１０をさらに示す。図４に示される例では、提案されるアクションは、「文書およびレシートを選択する」ことである。ユーザが提案されたアクション要素４１０を選択すると、文書かつレシートであるユーザの画像ライブラリからの他の画像が、関連する画像特性に基づいて自動的に選択される。例えば、自動的に選択された画像は、そのような画像がスクロールされるか、またはそうでなければユーザインターフェイス４００のビューに表示されるようにユーザ入力を介して命令される場合、チェックマーク４０４，４０６および４０８と同様のチェックマークとともに表示され得る。ある実施の形態では、そのような自動的に選択された画像は、画像ライブラリ内の画像の表示とは別個のユーザインターフェイスの表示領域に表示され得る。ある実施の形態では、他のまたは追加のアクション、たとえば、「選択画像をアーカイブ」、「選択画像を自動強化」、「選択画像を削除」などは、提案されたアクション要素内に示され得る。
【０１０５】
ある実施の形態では、提案されたアクションは、画像特性に基づいてよく、たとえば、異なる特定の提案されたアクションを、それぞれの特定の画像特性に関連付けることができる。例えば、ユーザが不鮮明な画像を選択した場合、提案されたアクションは、画像を削除することであり得る。別の例では、ユーザが暗い画像を選択した場合、提案されたアクションは、輝度またはコントラスト強調を適用することであり得る。ある実施の形態では、提案されるアクションは、複合アクション、たとえば「画像を選択する、画像フィルタを適用する、およびメッセージングアプリケーションを介して画像を共有する」であり得る。ユーザが提案されたアクション要素４１０を選択すると、対応するアクションが自動的に実行される。
【０１０６】
ユーザインターフェイス４００は、ユーザが、メモリ、処理リソース、および電力を含むデバイスリソースの削減された労力および削減された消費で画像を選択することを可能にする。例えば、ユーザがデバイス上で多くのスクロールおよび検索操作で手動で各ぼかし画像を選択しなければならない代わりに、ユーザインターフェイスは、ユーザが、単純かつ低減されたデバイス操作で提示された提案された選択を承認することを可能にし得る。さらに、ユーザインターフェイス４００に表示されないが、ユーザが選択した画像と一致する特性を有する画像ライブラリ内の他の画像は、ユーザが画像をスクロールし、各画像を手動で選択することなく選択することができる。
【０１０７】
図５Ａは、ある実施の形態による、画像選択提案を提供する例示的なユーザインターフェイス５００の概略図である。様々な実施の形態では、ユーザインターフェイス５００は、ディスプレイデバイスによって、たとえば、ある実施の形態では、図１のクライアントデバイス１２０、１２２、１２４および/または１２６もしくはサーバシステム１０２の表示画面によって表示され得る。
【０１０８】
図５Ａに示すように、ユーザインターフェイス５００は、ユーザが選択した画像５０２を含む選択トレイと、追加の画像を選択してトレイに追加できることを示す２つのブランクスポットとを含む。ユーザインターフェイス５００は、ユーザが選択することができる画像を含む。例えば、ユーザは、ユーザインターフェイスの「最近」セクション（５０４）から１つまたは複数の最近の画像を選択することができる。ある実施の形態では、「最近」セクション内の画像は、ユーザの画像ライブラリ内の画像に関連するキャプチャタイムスタンプに基づいて、時間の降順に編成され得る。
【０１０９】
ユーザインターフェイス５００は、本明細書で説明する技術を使用して決定される提案された画像選択を含む提案５０６をさらに含む。図５に示される例では、提案された画像選択は、「提案」カードの形態で表示され、「最近」セクション５０４の上に重ねられる。異なる実施の形態では、提案された画像選択は、ユーザインターフェイスの異なるセクションに表示されてもよく、チェックマークまたは他の視覚的インジケータを使用して、提案された画像選択を示す等してもよい。ある実施の形態では、提案された画像選択は、ユーザインターフェイスの優先セクションに、たとえば、選択トレイの近くに表示され得る。
【０１１０】
図５Ａに示される例では、ユーザは花の画像５０２を選択した。ユーザ選択に基づいて、画像５０２の１つまたは複数の特性に一致する特性を有するユーザの画像ライブラリ内の他の画像が提案５０６に含まれる。例えば、画像５０２に関連付けられる位置と同様の位置でキャプチャされた花の他の画像、例えば、画像５１２，５１４および５１６が表示されてもよい。図５に示される例では、マッチング特性に基づく要約「森林の小道にある花」が、提案カード内のセクションヘッダ５１０として示されている。ヘッダ「森林の小道の友人」（５２０）を有する第２のセクションは、画像５２２，５２４および５２６の追加の画像提案を含む。追加の画像提案は、関連付けられた場所が「森林の小道」であることに基づく。異なる実施の形態では、任意の数の画像提案が提供され得る。ユーザインターフェイス５００は、ユーザが、最近セクション５０４から、および/または提案カード５０６から１つまたは複数の画像を選択することを可能にする。
【０１１１】
ある実施の形態では、画像提案は、ユーザによってすでに選択された画像、たとえば、画像５０２との一致の程度に基づいて、ユーザインターフェイスにおいて編成（たとえば、グループ化）され得る。例えば、画像５１２〜５１６は、選択された画像５０２と同様の主題を含み、森林の小道でキャプチャされているので、提案カード５０６の第１の部分に示される。画像５２２〜５２６は、画像は森林の小道上でキャプチャされたが、画像は花を描いておらず選択された画像５０２とは異なるので、提案カード５０６の第２の部分に示される。
【０１１２】
図５Ｂは、ある実施の形態による、画像選択提案を提供する例示的なユーザインターフェイス５３０の概略図である。例えば、ユーザインターフェイス５３０は、ユーザがユーザインターフェイス５００を介して画像５２２および５１２を選択した後に表示することができる。追加の選択画像は、選択トレイの一部として示されている。画像５２２および５１２は、提案カードから除去される。追加の画像５２８は、例えば、画像ライブラリ内の画像の画像特性を選択された画像５０２，５１２および５２２とマッチングさせることに基づいて、提案カードに追加される。
【０１１３】
図５Ｃは、ある実施の形態による、画像選択提案を提供する例示的なユーザインターフェイス５４０の概略図である。図５Ｃに示されるように、画像ベースの創作物、たとえばピクチャコラージュ５４２は、ユーザによって選択された画像、たとえば画像５０２，５１２および５２２に基づいて生成された。ユーザインターフェイス５４０は、１つまたは複数の提案された画像を有する提案カードを含む。たとえば、ユーザインターフェイス５４０は、ユーザが、たとえば、提案カードからピクチャコラージュに画像をドラッグおよびドロップすることによって、提案された画像の１つまたは複数を選択し、ピクチャコラージュに画像を追加することを可能にし得る。
【０１１４】
図６は、本明細書で説明する１つまたは複数の特徴を実施するために使用され得る例示的なデバイス６００のブロック図である。一例では、デバイス６００は、クライアントデバイス、たとえば、図１に示されるクライアントデバイス１１５のいずれかを実施するために使用され得る。あるいは、デバイス６００は、サーバデバイス、例えば、サーバ１０１を実施することができる。ある実施の形態では、デバイス６００は、クライアントデバイス、サーバデバイス、またはクライアントデバイスとサーバデバイスの両方を実施するために使用され得る。デバイス６００は、任意の適切なコンピュータシステム、サーバ、または上述の他の電子もしくはハードウェアデバイスであり得る。
【０１１５】
本明細書で説明する１つまたは複数の方法は、任意のタイプのコンピューティングデバイス上で実行され得るスタンドアローンプログラム、ウェブブラウザ上で実行されるプログラム、モバイルコンピューティングデバイス（例えば、携帯電話、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス（ウォッチ、アームバンド、ジュエリー、ヘッドウェア、仮想現実ゴーグルまたはメガネ、拡張現実ゴーグルまたはメガネ、ヘッドマウントディスプレイなど）、ラップトップコンピュータなど）上で実行されるモバイルアプリケーション（「app」）で実行され得る。一例では、クライアント/サーバアーキテクチャを使用することができ、例えば、（クライアントデバイスとして）モバイルコンピューティングデバイスは、ユーザ入力データをサーバデバイスに送信し、出力のための（例えば、表示のための）最終出力データをサーバから受信する。別の例では、すべての計算は、モバイルコンピューティングデバイス上のモバイルアプリ（および/または他のアプリ）内で実行することができる。別の例では、モバイルコンピューティングデバイスと１つまたは複数のサーバデバイスとの間で計算を分割することができる。
【０１１６】
ある実施の形態では、デバイス６００は、プロセッサ６０２と、メモリ６０４と、入出力（Ｉ／Ｏ）インターフェイス６０６とを含む。プロセッサ６０２は、プログラムコードを実行し、デバイス６００の基本動作を制御する１つまたは複数のプロセッサおよび/または処理回路であり得る。「プロセッサ」は、データ、信号、または他の情報を処理する任意の適切なハードウェアシステム、メカニズム、またはコンポーネントを含む。プロセッサは、（例えば、シングルコア、デュアルコア、またはマルチコア構成にある）１つまたは複数のコアを有する汎用中央処理ユニット（ＣＰＵ）、（たとえば、マルチプロセッサ構成における）複数の処理ユニット、グラフィック処理ユニット（ＧＰＵ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、複合プログラマブルロジックデバイス（ＣＰＬＤ）、機能を達成するための専用回路、ニューラルネットワークモデルベースの処理を実施するための専用プロセッサ、ニューラル回路、行列計算（例えば、行列乗算）のために最適化されたプロセッサ、または他のシステム、を備えたシステムを含み得る。ある実施の形態では、プロセッサ６０２は、ニューラルネットワーク処理を実施する１つまたは複数のコプロセッサを含み得る。ある実施の形態では、プロセッサ６０２は、確率的出力を生成するためにデータを処理するプロセッサであり得、たとえば、プロセッサ６０２によって生成される出力は、不正確なものであり得、または予想される出力からの範囲内において正確であり得る。処理は、特定の地理的位置に限定される必要はなく、または時間的制限を有する必要はない。例えば、プロセッサは、「リアルタイム」、「オフライン」、「バッチモード」等でその機能を実行することができる。処理の部分は、異なる（または同じ）処理システムによって、異なる時間および異なる場所で実行されてもよい。コンピュータは、メモリと通信する任意のプロセッサであり得る。
【０１１７】
メモリ６０４は、典型的には、プロセッサ６０２によるアクセスのためにデバイス６００内に提供され、プロセッサによる実行のための命令を記憶するのに適した、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、電気的消去可能読み取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリなど、任意の適切なプロセッサ可読記憶媒体であり得る。また、プロセッサ６０２から分離して、および/またはプロセッサ６０２と一体化して配置される。メモリ６０４は、オペレーティングシステム６０８、機械学習アプリケーション６３０、他のアプリケーション６１２、およびアプリケーションデータ６１４を含む、プロセッサ６０２によってサーバデバイス６００上で動作するソフトウェアを記憶することができる。他のアプリケーション６１２は、データ表示エンジン、ウェブホスティングエンジン、画像表示エンジン、通知エンジン、ソーシャルネットワーキングエンジンなどのアプリケーションを含み得る。ある実施の形態では、機械学習アプリケーション６３０および他のアプリケーション６１２は、それぞれ、プロセッサ６０２が本明細書で説明する機能、たとえば、図２および図３の方法の一部またはすべてを実行することを可能にする命令を含み得る。
【０１１８】
他のアプリケーション６１２は、例えば、画像編集アプリケーション、メディアディスプレイアプリケーション、通信アプリケーション、ウェブホスティングエンジンまたはアプリケーション、マッピングアプリケーション、メディア共有アプリケーション等を含むことができる。本明細書で開示される１つまたは複数の方法は、いくつかの環境およびプラットフォームにおいて、たとえば、任意のタイプのコンピューティングデバイス上で実行することができるスタンドアロンコンピュータプログラムとして、ウェブページを有するウェブアプリケーションとして、モバイルコンピューティングデバイス上で実行されるモバイルアプリケーション（「app」）などとして動作することができる。
【０１１９】
様々な実施の形態では、機械学習アプリケーションは、ベイズ分類器、サポートベクターマシン、ニューラルネットワーク、または他の学習技法を利用することができる。ある実施の形態では、機械学習アプリケーション６３０は、トレーニングされたモデル６３４、推論エンジン６３６、およびデータ６３２を含み得る。ある実施の形態では、データ６３２は、トレーニングデータ、たとえば、トレーニングされたモデル６３４を生成するために使用されるデータを含み得る。たとえば、トレーニングデータは、テキスト、画像、オーディオ、ビデオなどの任意のタイプのデータを含み得る。トレーニングデータは、任意のソース、例えば、トレーニングのために特にマークされたデータレポジトリ、機械学習のためのトレーニングデータとして使用するために許可が提供されたデータなどから取得することができる。１人または複数のユーザが、機械学習モデル、たとえばトレーニングされたモデル６３４をトレーニングするためのそれぞれのユーザデータの使用を許可する実施の形態では、トレーニングデータは、そのようなユーザデータを含み得る。複数ユーザがそれぞれのユーザデータの使用を許可する実施の形態では、データ６３２は、画像（例えば、写真または他のユーザが生成した画像）、通信（例えば、eメール、テキストメッセージ、音声、ビデオ等のチャットデータ）、文書（例えば、スプレッドシート、テキスト文書、プレゼンテーションなど。）のような許可されたデータを含み得る。
【０１２０】
ある実施の形態において、データ６３２は、地図データ、画像データ（例えば、衛星画像、オーバーヘッド画像など。）、ゲームデータ等のような収集したデータを含み得る。ある実施の形態では、トレーニングデータは、トレーニングされるコンテキストにおけるユーザ入力または活動に基づかないデータ、たとえば、シミュレートされた会話、コンピュータ生成画像などから生成されるデータなどのように、トレーニングの目的のために生成される合成データを含み得る。ある実施の形態では、機械学習アプリケーション６３０は、データ６３２を除外する。たとえば、これらの実施の形態では、トレーニングされたモデル６３４は、たとえば、異なるデバイス上で生成され、機械学習アプリケーション６３０の一部として提供され得る。様々な実施の形態では、トレーニングされたモデル６３４は、モデル構造または形態と、関連付けられた重みとを含むデータファイルとして提供され得る。推論エンジン６３６は、訓練されたモデル６３４のためのデータファイルを読み取り、訓練されたモデル６３４において指定されたモデル構造または形式に基づいてノード接続性、層、および重みを有するニューラルネットワークを実施することができる。
【０１２１】
機械学習アプリケーション６３０は、トレーニングされたモデル６３４も含む。ある実施の形態では、トレーニングされたモデルは、１つまたは複数のモデル形態または構造を含み得る。例えば、モデル形式または構造は、線形ネットワーク、複数の層（例えば、入力層と出力層との間の「隠れた層」であり、各層は線形ネットワークである）を実施するディープニューラルネットワーク、畳み込みニューラルネットワーク（例えば、入力データを複数の部分またはタイルに分割し、１つまたは複数のニューラルネットワーク層を使用して各タイルを別々に処理し、各タイルの処理から得られた結果を集約するネットワーク）、シーケンス間ニューラルネットワーク（例えば、文中の単語、ビデオ中のフレームなどの順次データを入力として取り、結果シーケンスを出力として生成するネットワーク）など、任意のタイプのニューラルネットワークを含み得る。モデル形式または構造は、様々なノード間の接続性およびノードの層への編成を指定することができる。たとえば、第１の層（たとえば、入力層）のノードは、データを入力データ６３２またはアプリケーションデータ６１４として受信することができる。そのようなデータは、例えば、トレーニングされたモデルが画像分析に使用される場合、ノード当たり１つまたは複数のピクセルを含むことができる。後続の中間層は、モデル形式または構造において指定された接続性ごとに、前の層のノードの出力を入力として受信してもよい。これらの層は隠し層と呼ばれることもある。最終層（例えば、出力層）は、機械学習アプリケーションの出力を生成する。例えば、出力は、特定のトレーニングされたモデルに応じて、画像に対するラベルのセット、画像の他の画像（例えば、画像の特徴ベクトル）との比較を可能にする画像の表現、入力文に応じた出力文、入力データの１つまたは複数のカテゴリなどとすることができる。ある実施の形態では、モデル形式または構造はまた、各層中のノードの数および/またはタイプを指定する。
【０１２２】
異なる実施の形態では、トレーニングされたモデル６３４は、モデル構造または形態ごとに層に配列される複数のノードを含み得る。ある実施の形態では、ノードは、たとえば、１単位の入力を処理して１単位の出力を生成するように構成された、メモリを有さない計算ノードであり得る。ノードによって実行される計算は、例えば、複数のノード入力の各々に重みを掛けること、重み付き和を得ること、およびノード出力を生成するためにバイアスまたは切片値で重み付き和を調整することを含み得る。ある実施の形態では、ノードによって実行される計算はまた、ステップ/アクティブ化関数を調整された加重和に適用することを含み得る。ある実施の形態では、ステップ/アクティブ化関数は、非線形関数であり得る。様々な実施の形態では、そのような計算は、行列乗算などの演算を含み得る。ある実施の形態では、複数のノードによる計算は、たとえば、マルチコアプロセッサの複数のプロセッサコアを使用して、ＧＰＵの個々の処理ユニットを使用して、または専用ニューラル回路を使用して、並列に実行され得る。ある実施の形態では、ノードはメモリを含んでもよく、たとえば、後続の入力を処理する際に１つまたは複数の以前の入力を記憶し使用することができる。例えば、メモリを有するノードは、長短記憶（ＬＳＴＭ）ノードを含み得る。ＬＳＴＭノードは、ノードが有限状態機械（ＦＳＭ）のように動作することを可能にする「状態」を維持するためにメモリを使用することができる。そのようなノードを有するモデルは、逐次データ、例えば、文または段落の単語、ビデオ、スピーチまたは他のオーディオのフレームなどを処理する際に有用であり得る。
【０１２３】
ある実施の形態では、トレーニングされたモデル６３４は、個々のノードのための埋め込みまたは重みを含み得る。例えば、モデルは、モデル形式または構造によって指定された層に編成された複数のノードとして開始され得る。初期化時に、それぞれの重みを、モデル形式ごとに接続されるノード、例えばニューラルネットワークの連続する階層のノードの各対の接続に適用することができる。例えば、各重みはランダムに割り当てられてもよく、デフォルト値に初期化されてもよい。次いで、モデルを、例えばデータ６３２を用いてトレーニングして、結果を生成してもよい。
【０１２４】
例えば、トレーニングは、教師付き学習技術を適用することを含み得る。教師付き学習では、トレーニングデータは、複数の入力（例えば、画像のセット）と、各入力に対する対応する予想出力（例えば、各画像に対する１つまたは複数のラベル）とを含むことができる。モデルの出力と予想される出力との比較に基づいて、重みの値は、例えば、同様の入力が与えられた場合にモデルが予想される出力を生成する確率を増加させるように、自動的に調整される。
【０１２５】
ある実施の形態では、トレーニングは、教師なし学習技法を適用することを含み得る。教師なし学習では、入力データだけが提供されてもよく、モデルは、例えば入力データを複数のグループにクラスタ化するために、データを区別するようにトレーニングされてもよく、各グループは曲がりなりにも、類似する入力データを含む。例えば、モデルは、抽象画像（例えば、合成画像、人が描画した画像等である。）を自然画像（例えば写真）から区別するように、画像を区別するようにトレーニングされてもよい。モデルは、画像コンテンツデータおよび/または画像メタデータに基づいて１つまたは複数の画像特性を決定するようにトレーニングされ得る。決定された画像特性は、画像ラベルおよび/またはセマンティック概念を含み得る。
【０１２６】
別の例では、教師なし学習を使用してトレーニングされるモデルは、入力文における単語の使用に基づいて単語をクラスタ化してもよい。ある実施の形態では、教師なし学習を使用して、たとえば、機械学習アプリケーション６３０によって使用され得る知識表現を生成することができる。様々な実施の形態では、トレーニングされたモデルは、モデル構造に対応する１組の重みまたは埋め込みを含む。データ６３２が省略される実施の形態では、機械学習アプリケーション６３０は、たとえば機械学習アプリケーション６３０の開発者によって、サードパーティによってなど、以前のトレーニングに基づくトレーニングされたモデル６３４を含み得る。ある実施の形態では、トレーニングされたモデル６３４は、固定された、たとえば、重みを提供するサーバからダウンロードされる重みのセットを含み得る。
【０１２７】
機械学習アプリケーション６３０はまた、推論エンジン６３６を含む。推論エンジン６３６は、トレーニングされたモデル６３４をアプリケーションデータ６１４などのデータに適用して推論を提供するように構成される。ある実施の形態では、推論エンジン６３６は、プロセッサ６０２によって実行されるソフトウェアコードを含み得る。ある実施の形態では、推論エンジン６３６は、プロセッサ６０２がトレーニングされたモデルを適用することを可能にする回路構成（例えば、プログラマブルプロセッサ用、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）用など。）を指定することができる。ある実施の形態では、推論エンジン６３６は、ソフトウェア命令、ハードウェア命令、または組合せを含み得る。ある実施の形態では、推論エンジン６３６は、オペレーティングシステム６０８および/または他のアプリケーション６１２によって使用されて推論エンジン６３６を呼び出し、たとえば、トレーニングされたモデル６３４をアプリケーションデータ６１４に適用して推論を生成することができるアプリケーションプログラミングインターフェイス（ＡＰＩ）を提供し得る。
【０１２８】
機械学習アプリケーション６３０は、いくつかの技術的利点を提供することができる。例えば、トレーニングされたモデル６３４が教師なし学習に基づいて生成されるとき、トレーニングされたモデル６３４は、入力データ、例えば、アプリケーションデータ６１４から知識表現（例えば、数値表現）を生成するために推論エンジン６３６によって適用され得る。例えば、画像分析のためにトレーニングされたモデルは、入力画像（例えば、１０MB）より小さいデータサイズ（例えば、１KB）を有する画像の表現を生成し得る。ある実施の形態では、そのような表現は、出力（例えば、ラベル、分類、画像を記述する文等）を生成するために処理コスト（例えば、計算コスト、メモリ使用など。）を低減するのに役立ち得る。ある実施の形態では、そのような表現は、推論エンジン６３６の出力から出力を生成する異なる機械学習アプリケーションへの入力として提供され得る。ある実施の形態では、機械学習アプリケーション６３０によって生成された知識表現は、たとえば、ネットワークを介してさらなる処理を行う異なるデバイスに提供され得る。そのような実施の形態では、画像よりもむしろ知識表現を提供することは、たとえば、削減されたコストでより迅速なデータ送信を可能にする、技術的利益を提供し得る。別の例では、文書をクラスタリングするためにトレーニングされたモデルは、入力文書から文書クラスタを生成してもよい。文書クラスタは、元の文書にアクセスする必要なしにさらなる処理（例えば、文書がトピックに関連するかどうかを決定すること、文書の分類カテゴリを決定することなど。）に適しており、したがって、計算コストを節約する。
【０１２９】
ある実施の形態では、機械学習アプリケーション６３０は、オフライン方式とれで実施され得る。これらの実施の形態では、トレーニングされたモデル６３４は、第１の段階で生成され、機械学習アプリケーション６３０の一部として提供され得る。ある実施の形態では、機械学習アプリケーション６３０は、オンライン方式で実施され得る。たとえば、そのような実施の形態では、機械学習アプリケーション６３０（例えば、オペレーティングシステム６０８、他のアプリケーション６１２のうちの１つまたは複数）を呼び出すアプリケーションは、機械学習アプリケーション６３０によって生成された推論を利用し、たとえば、ユーザに推論を提供し、システムログ（例えば、ユーザが許可する場合、推論に基づいてユーザがとるアクション、または、さらなる処理のための入力として利用される場合、さらなる処理の結果）を生成することができる。システムログは、定期的に、例えば、１時間毎、１ヶ月毎、四半期毎に生成されてもよく、トレーニングされたモデル６３４を更新するために、例えば、トレーニングされたモデル６３４の埋め込みを更新するために、ユーザの許可と共に使用されてもよい。
【０１３０】
ある実施の形態では、機械学習アプリケーション６３０は、機械学習アプリケーション６３０が実行されるデバイス６００の特定の構成に適合し得る方法で実施され得る。例えば、機械学習アプリケーション６３０は、利用可能な計算リソース、例えば、プロセッサ６０２を利用する計算グラフを決定することができる。例えば、機械学習アプリケーション６３０が複数のデバイス上の分散アプリケーションとして実施される場合、機械学習アプリケーション６３０は、計算を最適化するように個々のデバイス上で実行される計算を決定することができる。別の例では、機械学習アプリケーション６３０は、プロセッサ６０２が特定の数（たとえば、１０００）のＧＰＵコアを有するＧＰＵを含むと判断し、それに応じて（例えば、１０００個の個々のプロセス又はスレッドとして）、推論エンジンを実施することができる。
【０１３１】
ある実施の形態では、機械学習アプリケーション６３０は、トレーニングされたモデルの集合を実施することができる。例えば、トレーニングされたモデル６３４は、各々が同じ入力データに適用可能な複数のトレーニングされたモデルを含み得る。これらの実施の形態では、機械学習アプリケーション６３０は、たとえば、利用可能な計算リソース、以前の推論による成功率などに基づいて、特定のトレーニングされたモデルを選択し得る。ある実施の形態では、機械学習アプリケーション６３０は、複数のトレーニングされたモデルが適用されるように推論エンジン６３６を実行することができる。これらの実施の形態では、機械学習アプリケーション６３０は、個々のモデルを適用することからの出力を、たとえば、個々の出力を各トレーニングされたモデルを適用することによってスコア化する投票技術を使用して、または１つまたは複数の特定の出力を選択することによって、組み合わせることができる。さらに、これらの実施の形態では、機械学習アプリケーションは、個々のトレーニングされたモデルを適用するための時間閾値（たとえば、０.５ms）を適用し、時間閾値内で利用可能であるそれらの個々の出力のみを利用することができる。時間閾値内で受信されない出力は、利用されない、例えば破棄される場合がある。例えば、そのようなアプローチは、機械学習アプリケーションを呼び出す間に、例えばオペレーティングシステム６０８または１つまたは複数のアプリケーション６１２によって指定された時間制限があるときに適切であり得る。
【０１３２】
異なる実施の形態では、機械学習アプリケーション６３０は、異なるタイプの出力を生成することができる。例えば、機械学習アプリケーション６３０は、表現またはクラスタ（例えば、入力データの数値表現）、（例えば、画像、文書等を含む入力データに関する）ラベル、（例えば、画像または映像を説明した、入力文に対する応答として使用するのに適した、等の）フレーズまたは文、（例えば、入力に応答して機械学習アプリケーションによって生成された）画像、音声またはビデオを提供し得る（例えば、入力ビデオに応答して、機械学習アプリケーション６３０は、適用される特定の効果たとえば、トレーニングされたモデル６３４が、コミックブックまたは特定のアーチストからのトレーニングデータなどを使用してトレーニングされている場合には、コミックブックまたは特定のアーチストのスタイルでレンダリングされた出力ビデオを生成し得る等）。ある実施の形態において、機械学習アプリケーション６３０は、呼び出し元アプリケーション、例えばオペレーティングシステム６０８や１つまたは複数のアプリケーション６１２によって規定されたフォーマットに基づいて出力を生成しうる。ある実施の形態において、呼び出し元アプリケーションは、他の機械学習アプリケーションであってもよい。例えば、そのような構成は、生成型の敵対的ネットワークで使用することができ、呼び出している機械学習アプリケーションは、機械学習アプリケーション６３０からの出力を用いてトレーニングされ、逆もまた同様である。
【０１３３】
あるいは、メモリ６０４内の任意のソフトウェアは、任意の他の適切な記憶場所またはコンピュータ可読媒体に記憶することができる。さらに、メモリ６０４（および/または他の接続された記憶装置）は、１つまたは複数の画像、メッセージ、１つまたは複数の分類、電子百科事典、辞書、シソーラス、知識ベース、メッセージデータ、文法、ユーザ選好、および/または本明細書に記載の特徴で使用される他の命令およびデータを記憶することができる。メモリ６０４および任意の他のタイプのストレージ（磁気ディスク、光ディスク、磁気テープ、または他の有形媒体）は、「ストレージ」または「ストレージデバイス」と見なすことができる。
【０１３４】
Ｉ／Ｏインターフェイス６０６は、サーバデバイス６００を他のシステムおよびデバイスとインターフェイス接続することを可能にする機能を提供することができる。インターフェイスされたデバイスは、デバイス６００の一部として含めることができ、または分離されて、デバイス６００と通信することができる。例えば、ネットワーク通信デバイス、ストレージデバイス（例えば、メモリおよび/又はデータベース１０６）、および入出力デバイスは、Ｉ／Ｏインターフェイス６０６を介して通信することができる。ある実施の形態では、Ｉ／Ｏインターフェイスは、入力デバイス（キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナ、センサなど。）および/または出力デバイス（ディスプレイデバイス、スピーカデバイス、プリンタ、モータなど。）などのインターフェイスデバイスに接続することができる。
【０１３５】
Ｉ／Ｏインターフェイス６０６に接続することができるインターフェイス付きデバイスのいくつかの例は、コンテンツ、たとえば、画像、ビデオ、および/または本明細書で説明する出力アプリケーションのユーザインターフェイスを表示するために使用することができる１つまたは複数のディスプレイデバイス６２０を含むことができる。ディスプレイデバイス６２０は、ローカル接続（例えば、ディスプレイバス）を介して、および/またはネットワーク接続を介してデバイス６００に接続することができ、任意の適切なディスプレイデバイスとすることができる。ディスプレイデバイス６２０は、LCD、LED、またはプラズマディスプレイスクリーン、CRT、テレビ、モニタ、タッチスクリーン、３Dディスプレイスクリーン、または他の視覚ディスプレイデバイスなどの任意の適切なディスプレイデバイスを含み得る。例えば、ディスプレイデバイス６２０は、モバイルデバイス上に提供される平坦なディスプレイ画面、ゴーグルもしくはヘッドセットデバイス内に提供される複数のディスプレイ画面、またはコンピュータデバイスのためのモニタ画面であり得る。
【０１３６】
Ｉ／Ｏインターフェイス６０６は、他の入力および出力デバイスとインターフェイスすることができる。いくつかの例は、画像をキャプチャすることができる１つまたは複数のカメラを含む。ある実施の形態は、（例えば、キャプチャされた画像の一部、音声コマンドなどとして）音をキャプチャするためのマイクロフォン、音を出力するためのオーディオスピーカデバイス、または他の入力デバイスおよび出力デバイスを提供することができる。
【０１３７】
説明を容易にするために、図６は、プロセッサ６０２、メモリ６０４、Ｉ／Ｏインターフェイス６０６、ならびにソフトウェアブロック６０８，６１２および６３０の各々に対する１つのブロックを示す。これらのブロックは、１つまたは複数のプロセッサまたは処理回路、オペレーティングシステム、メモリ、Ｉ／Ｏインターフェイス、アプリケーション、および/またはソフトウェアモジュールを表し得る。他の実施の形態では、デバイス６００は、示される構成要素のすべてを有しなくてもよく、および/または本明細書に示される構成要素の代わりに、またはそれに加えて、他のタイプの構成要素を含む他の構成要素を有してもよい。いくつかのコンポーネントは、本明細書のいくつかの実施において説明されるようなブロックおよび動作を実行するものとして説明されるが、環境１００、デバイス６００、同様のシステム、またはそのようなシステムに関連する任意の適切なプロセッサまたは複数のプロセッサの任意の適切なコンポーネントまたはコンポーネントの組み合わせは、説明されるブロックおよび動作を実行することができる。
【０１３８】
本明細書で説明する方法は、コンピュータ上で実行され得るコンピュータプログラム命令またはコードによって実施され得る。たとえば、コードは、１つまたは複数のデジタルプロセッサ（たとえば、マイクロプロセッサまたは他の処理回路）によって実施することができ、半導体または固体メモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、リジッド磁気ディスク、光ディスク、固体メモリドライブ等を含む磁気、光学、電磁、または半導体記憶媒体のような、非一時的コンピュータ可読媒体（たとえば、記憶媒体）を含むコンピュータプログラム製品に格納することができる。プログラム命令はまた、例えばサーバ（例えば、分散システムおよび/又はクラウドコンピューティングシステム）から配信されるサービス（SaaS）としてのソフトウェアの形態で、電子信号に含まれ、電子信号として提供されることもできる。あるいは、１つまたは複数の方法は、ハードウェア（論理ゲートなど）で、またはハードウェアとソフトウェアとの組み合わせで実施され得る。ハードウェアの例は、プログラム可能なプロセッサ（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、複合プログラマブルロジックデバイス）、汎用プロセッサ、グラフィックプロセッサ、特定用途向け集積回路（ＡＳＩＣ）などであり得る。１つまたは複数の方法は、システム上で実行するアプリケーションの一部または構成要素として、または他のアプリケーションおよびオペレーティングシステムとともに実行するアプリケーションまたはソフトウェアとして実行することができる。
【０１３９】
説明は、その特定の実施に関して説明してきたが、これらの特定の実施は、例示にすぎず、限定的ではない。実施例において示される概念は、他の例および実施に適用され得る。
【０１４０】
本開示で説明する機能ブロック、動作、特徴、方法、デバイス、およびシステムは、当業者に知られているように、システム、デバイス、および機能ブロックの異なる組み合わせに統合または分割され得ることに留意されたい。任意の適切なプログラミング言語およびプログラミング技術を使用して、特定の実施のルーチンを実施することができる。異なるプログラミング技法、例えば手続き的またはオブジェクト指向の技法を採用することができる。ルーチンは、単一の処理装置または複数のプロセッサ上で実行することができる。ステップ、動作、または計算は、特定の順序で提示され得るが、順序は、異なる特定の実施の形態で変更され得る。ある実施の形態では、本明細書で順次として示される複数のステップまたは動作が同時に実行され得る。
【図１】
2021504803.tif 000003
【図２】
2021504803.tif 000004
【図３】
2021504803.tif 000005
【図４】
2021504803.tif 000006
【図５Ａ】
2021504803.tif 000007
【図５Ｂ】
2021504803.tif 000008
【図５Ｃ】
2021504803.tif 000009
【図６】
2021504803.tif 000010
【手続補正書】
【提出日】令和2年5月26日(2020.5.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像ライブラリ内の１つまたは複数の第１の画像の選択を示す第１のユーザ入力を受信することと、
前記１つまたは複数の第１の画像の１つまたは複数の第１の画像特性を決定することと、
前記画像ライブラリ内の１つまたは複数の第２の画像を識別することとを備え、前記１つまたは複数の第２の画像の各々は、前記１つまたは複数の第１の画像特性のうちの少なくとも１つに一致する少なくとも１つの第２の画像特性に関連付けられ、
ユーザインターフェイスを表示させることをさらに備え、前記ユーザインターフェイスは、前記１つまたは複数の第２の画像を含み、前記ユーザインターフェイスは、前記１つまたは複数の第２の画像の選択を可能にする、方法。
【請求項２】
前記１つまたは複数の第２の画像のうちの少なくとも１つの選択を示す第２のユーザ入力を受信することと、
前記第２のユーザ入力の受信に応答して、前記１つまたは複数の第２の画像のうちの前記少なくとも１つの１つまたは複数の第２の画像特性を決定することと、
前記画像ライブラリ内の１つまたは複数の第３の画像を識別することとを備え、前記１つまたは複数の第３の画像の各々は、前記１つまたは複数の第１の画像特性のうちの少なくとも１つおよび前記１つまたは複数の第２の画像特性のうちの少なくとも１つに一致する少なくとも１つの第３の画像特性に関連付けられ、
更新されたユーザインターフェイスを表示させることをさらに備え、前記更新されたユーザインターフェイスは、前記１つまたは複数の第３の画像を含み、前記更新されたユーザインターフェイスは、前記１つまたは複数の第３の画像の選択を可能にする、請求項１に記載の方法。
【請求項３】
画像アルバムを生成することをさらに備え、前記画像アルバムは、前記１つまたは複数の第１の画像および１つまたは複数の第２の画像のうちの少なくとも１つを含む、請求項２に記載の方法。
【請求項４】
前記１つまたは複数の第２の画像のうちの少なくとも１つの選択を示す第２のユーザ入力を受信することと、
画像コラージュを生成することとをさらに備え、前記画像コラージュは、前記１つまたは複数の第１の画像および前記１つまたは複数の第２の画像のうちの少なくとも１つを含む、請求項１〜３のいずれかに記載の方法。
【請求項５】
前記１つまたは複数の第１の画像特性を決定することは、前記１つまたは複数の第１の画像のうちの少なくとも１つが不鮮明であると判断することを含み、前記１つまたは複数の第２の画像を識別することは、前記１つまたは複数の第２の画像の不鮮明度に基づいて前記１つまたは複数の第２の画像の各々を識別することを含む、請求項１〜４のいずれかに記載の方法。
【請求項６】
前記１つまたは複数の第１の画像特性を決定することは、前記１つまたは複数の第１の画像のうちの少なくとも１つに関連付けられた位置を決定することを含み、前記１つまたは複数の第２の画像を識別することは、前記１つまたは複数の第１の画像のうちの前記少なくとも１つに関連する前記位置の閾値距離内にあるそれぞれの位置に関連する画像を前記画像ライブラリから選択することを含む、請求項１〜５のいずれかに記載の方法。
【請求項７】
画像選択のコンテキストを決定することをさらに備え、前記１つまたは複数の第２の画像を識別することは、画像選択の前記コンテキストに基づく、請求項１〜６のいずれかに記載の方法。
【請求項８】
画像選択の前記コンテキストは、画像ベースの創作物の生成、または画像をターゲットソフトウェアアプリケーションに提供することのうちの１つである、請求項７に記載の方法。
【請求項９】
前記画像ベースの創作物は、画像アルバム、画像コラージュ、ビデオ、または印刷された出版物のうちの少なくとも１つを含む、請求項８に記載の方法。
【請求項１０】
前記１つまたは複数の第２の画像は、前記１つまたは複数の第１の画像のうちの少なくとも１つの複製である、請求項１〜９のいずれかに記載の方法。
【請求項１１】
前記１つまたは複数の第２の画像のうちの少なくとも１つの選択を示す第２のユーザ入力を受信することと、
前記１つまたは複数の第１の画像および前記１つまたは複数の第２の画像のうちの少なくとも１つに基づいて、提案されたアクション要素を前記ユーザインターフェイスに表示させることとをさらに備える、請求項１〜１０のいずれかに記載の方法。
【請求項１２】
前記提案されたアクション要素のユーザ選択を受信することと、
前記ユーザ選択の受信に応答して、前記提案されたアクション要素に関連付けられたアクションを実行することとをさらに備え、前記アクションは、前記１つまたは複数の第１の画像および前記１つまたは複数の第２の画像のうちの少なくとも１つをアーカイブすること、前記１つまたは複数の第１の画像および前記１つまたは複数の第２の画像のうちの前記少なくとも１つを削除すること、または、前記１つまたは複数の第１の画像および前記１つまたは複数の第２の画像のうちの前記少なくとも１つを自動的に強調することを行なうことの１つまたは複数を含む、請求項１１に記載の方法。
【請求項１３】
ターゲットソフトウェアアプリケーションを示すコンテキスト情報を決定することと、
前記コンテキスト情報に少なくとも部分的に基づいて、画像ライブラリ内の１つまたは複数の第１の画像を識別することと、
ユーザインターフェイスを表示させることとを備え、前記ユーザインターフェイスは、前記１つまたは複数の第１の画像を含み、前記ユーザインターフェイスは、前記１つまたは複数の第１の画像の選択を可能にし、
前記１つまたは複数の第１の画像のうちの少なくとも１つの画像の選択を示す第１のユーザ入力を受信することと、
前記第１のユーザ入力の受信に応答して、前記少なくとも１つの画像を前記ターゲットソフトウェアアプリケーションに提供することとをさらに備える、方法。
【請求項１４】
前記少なくとも１つの画像の１つまたは複数の第１の画像特性を決定することと、
前記画像ライブラリ内の１つまたは複数の第２の画像を識別することとをさらに備え、前記１つまたは複数の第２の画像の各々は、前記１つまたは複数の第１の画像特性のうちの少なくとも１つを有しており、
更新されたユーザインターフェイスを表示させることを含み、前記更新されたユーザインターフェイスは、前記１つまたは複数の第２の画像を含み、前記ユーザインターフェイスは、前記１つまたは複数の第２の画像の選択を可能にする、請求項１３に記載の方法。
【請求項１５】
前記コンテキスト情報を決定することは、前記ターゲットソフトウェアアプリケーションのアプリケーションタイプを決定することを含む、請求項１３または１４に記載の方法。
【請求項１６】
前記アプリケーションタイプは、画像共有アプリケーションを含み、前記１つまたは複数の第１の画像を識別することは、
品質閾値を満たす画像ライブラリから前記１つまたは複数の第１の画像を選択することを含む、請求項１５に記載の方法。
【請求項１７】
前記アプリケーションタイプは、金融アプリケーションを含み、前記１つまたは複数の第１の画像を識別することは、
前記画像ライブラリから前記１つまたは複数の第１の画像を選択することを含み、前記１つまたは複数の第１の画像は、レシート、文書、またはスクリーンショットのうちの１つまたは複数を含む画像ラベルに関連付けられる、請求項１５に記載の方法。
【請求項１８】
前記アプリケーションタイプは、メッセージングアプリケーションを含み、前記コンテキスト情報を決定することは、前記メッセージングアプリケーションにおけるメッセージング会話における参加者の識別情報を受信することをさらに含み、前記１つまたは複数の第１の画像を識別することは、
前記メッセージング会話における参加者のうちの少なくとも１つを示す画像を前記画像ライブラリから選択することを含む、請求項１５に記載の方法。
【請求項１９】
前記コンテキスト情報を決定することは、前記ターゲットソフトウェアアプリケーションからアプリケーションコンテキストを受信することを含み、前記１つまたは複数の第１の画像を識別することは、
前記アプリケーションコンテキストに基づいて１つまたは複数のセマンティック概念を決定することと、
前記１つまたは複数の第１の画像を選択することとを含み、前記１つまたは複数の第１の画像の各々の少なくとも１つの画像特性は、前記１つまたは複数のセマンティック概念のうちの少なくとも１つと一致する、請求項１３〜１８のいずれかに記載の方法。
【請求項２０】
請求項１〜１９のいずれかに記載の方法を１つまたは複数のプロセッサに実行させるためのプログラム。
【請求項２１】
請求項２０に記載のプログラムを格納したメモリと、
前記プログラムを実行するための１または複数のプロセッサとを備える、システム。
【国際調査報告】
2021504803.tif 000011
2021504803.tif 000012