(57)【要約】  画像フレームをキャプチャするように動作可能な画像キャプチャシステムを含み得る、モバイル画像キャプチャデバイスが提供され、モバイル画像キャプチャデバイスが、ユーザインターフェースのビューファインダー部分内に表示するための、画像キャプチャシステムの現在の視野の少なくとも一部分を示すライブビデオストリームを提供すること、一時的画像バッファ内に、ライブビデオストリームからの、画像キャプチャシステムによってキャプチャされた複数の画像フレームを含むビデオセグメントを記憶すること、巻戻し動作を要求する、ユーザインターフェースのビューファインダー部分に向けられる、ユーザ入力を受信すること、および、そのようなユーザ入力に応答して、ビデオセグメントに対して、ユーザインターフェースのビューファインダー部分内で巻戻し動作を実行することであって、巻戻し動作において、ビデオセグメントの画像フレームのうちの少なくとも2つが、新しい順にユーザインターフェース内に表示するために提供され得る、実行することを行うように構成され得る。
2021524171.tif 000002
【特許請求の範囲】
【請求項１】
モバイル画像キャプチャデバイスであって、
画像フレームをキャプチャするように動作可能な画像キャプチャシステムと、
1つまたは複数のプロセッサと、
命令を記憶する1つまたは複数のコンピュータ可読記録媒体とを備え、前記命令が、前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに複数の動作を実行させ、前記複数の動作が、
ユーザインターフェースのビューファインダー部分内に表示するためのライブビデオストリームを提供することであって、前記ライブビデオストリームが、前記モバイル画像キャプチャデバイスの前記画像キャプチャシステムの現在の視野の少なくとも一部分を示す、提供すること、
一時的画像バッファ内に、前記ライブビデオストリームからのビデオセグメントを記憶することであって、前記ビデオセグメントが、前記画像キャプチャシステムによってキャプチャされた複数の画像フレームを備える、記憶すること、
前記ユーザインターフェースの前記ビューファインダー部分に向けられ、巻戻し動作を要求する、ユーザ入力を受信すること、および
前記巻戻し動作を要求する前記ユーザ入力の受信に応答して、前記ビデオセグメントに対して、前記ユーザインターフェースの前記ビューファインダー部分内で前記巻戻し動作を実行することであって、前記巻戻し動作中に、前記ビデオセグメントの前記画像フレームのうちの少なくとも2つが、新しい順に前記ユーザインターフェース内に表示するために提供される、実行すること
を含む、モバイル画像キャプチャデバイス。
【請求項２】
前記複数の動作が、
前記画像フレームのうちの1つのユーザによる選択を受信すること、および
メモリロケーション内に、前記選択された画像フレームを記憶すること
をさらに含む、請求項1に記載のモバイル画像キャプチャデバイス。
【請求項３】
前記ユーザ入力が速度を有し、
前記巻戻し動作を実行することが、前記ユーザ入力の前記速度に正に相関する速度で、前記ビデオセグメントの第1の画像フレームの表示と前記ビデオセグメントの少なくとも第2の画像フレームの表示との間で、前記ユーザインターフェースを遷移させることを含む、請求項1に記載のモバイル画像キャプチャデバイス。
【請求項４】
前記ライブビデオストリームからの前記ビデオセグメントが、時間移動ウィンドウに関連付けられた先入れ先出し(FIFO)構成において、前記一時的画像バッファ内に記憶される、請求項1に記載のモバイル画像キャプチャデバイス。
【請求項５】
前記モバイル画像キャプチャデバイスが、前記ユーザインターフェースを表示するタッチセンシティブディスプレイ画面をさらに備え、前記ユーザ入力が、前記タッチセンシティブディスプレイ画面に対するユーザタッチアクションを備える、請求項1に記載のモバイル画像キャプチャデバイス。
【請求項６】
前記巻戻し動作を実行することが、前記ユーザ入力の移動に応答して、スクラビング動作を実行することを含む、請求項5に記載のモバイル画像キャプチャデバイス。
【請求項７】
前記複数の動作が、前記巻戻し動作中に、巻戻しストリップを表示することを含む、請求項1に記載のモバイル画像キャプチャデバイス。
【請求項８】
前記ライブビデオストリームが、複数のライブビデオストリームから生成された複合環境ストリームを備える、請求項1に記載のモバイル画像キャプチャデバイス。
【請求項９】
前記巻戻し動作を実行することが、新しい順に前記ユーザインターフェース内に表示するための前記ビデオセグメントを提供することを含む、請求項1に記載のモバイル画像キャプチャデバイス。
【請求項１０】
前記モバイル画像キャプチャデバイスが、前記ビデオセグメントの前記複数の画像フレームを受信することと、および前記複数の画像フレームの受信に応答して、前記複数の画像フレームのうちの少なくとも1つの選択を表すフレーム選択セットを出力することとを行うように構成された、機械学習画像選択モデルをさらに備え、前記複数の動作が、
前記機械学習画像選択モデルに、前記ビデオセグメントの前記複数の画像フレームを入力すること、
前記機械学習画像選択モデルの出力として、前記フレーム選択セットを受信すること、および
前記ユーザインターフェース内に表示するための選択提案を提供することであって、前記選択提案が、前記フレーム選択セットによって表された前記画像フレームのうちの少なくとも1つを含む、提供すること
をさらに含む、請求項1に記載のモバイル画像キャプチャデバイス。
【請求項１１】
前記複数の動作が、
第1のソースから第2のソースへの前記ライブビデオストリームの切替えを要求する、ユーザ入力を受信すること、および
前記第1のソースから前記第2のソースに切り替わるように前記ライブビデオストリームに要求する前記ユーザ入力の受信に応答して、前記第1のソースから前記第2のソースに前記ライブビデオストリームを切り替えること
をさらに含む、請求項1に記載のモバイル画像キャプチャデバイス。
【請求項１２】
カメラアプリケーションが開かれるとすぐに、前記ビデオセグメントが、前記ライブビデオストリームから前記一時的画像バッファ内に自動的に記憶される、請求項1に記載のモバイル画像キャプチャデバイス。
【請求項１３】
前記カメラアプリケーションが、少なくとも画像キャプチャモードおよびビデオキャプチャモードにおいて動作可能であり、前記カメラアプリケーションが前記画像キャプチャモードまたは前記ビデオキャプチャモードであるとき、前記ビデオセグメントが前記ライブビデオストリームから自動的に記憶される、請求項12に記載のモバイル画像キャプチャデバイス。
【請求項１４】
モバイル画像キャプチャデバイスであって、
複数のソースから画像フレームをキャプチャするように動作可能な画像キャプチャシステムであって、各ソースがそれぞれの視野を有する、画像キャプチャシステムと、
1つまたは複数のプロセッサと、
命令を記憶する1つまたは複数のコンピュータ可読記録媒体とを備え、前記命令が、前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに複数の動作を実行させ、前記複数の動作が、
ユーザインターフェースのビューファインダー部分内に表示するためのライブビデオストリームを提供することであって、前記ライブビデオストリームが、前記複数のソースから生成された複合環境ストリームを備える、提供すること、
一時的画像バッファ内に、前記ライブビデオストリームからのビデオセグメントを記憶することであって、前記ビデオセグメントが、前記画像キャプチャシステムによってキャプチャされた複数の画像フレームを備える、記憶すること、
前記ユーザインターフェースの前記ビューファインダー部分に向けられ、巻戻し動作を要求する、ユーザ入力を受信すること、および
前記巻戻し動作を要求する前記ユーザ入力の受信に応答して、前記ビデオセグメントに対して、前記ユーザインターフェースの前記ビューファインダー部分内で前記巻戻し動作を実行することであって、前記巻戻し動作中に、前記ビデオセグメントの前記画像フレームのうちの少なくとも2つが、新しい順に前記ユーザインターフェース内に表示するために提供される、実行すること
を含む、モバイル画像キャプチャデバイス。
【請求項１５】
前記ユーザインターフェースの前記ビューファインダー部分内に表示するための前記ライブビデオストリームを提供することが、1次ライブビデオストリームと2次ライブビデオストリームとを表示することであって、前記1次ライブビデオストリームが、前記2次ライブビデオストリームよりも大きく表示される、表示することを含み、
前記1次ライブビデオストリームを表示することが、前記複数のソースのうちの第1のソースからの画像を表示することを含み、
前記2次ライブビデオストリームを表示することが、前記複数のソースのうちの第2のソースからの画像を表示することを含む、請求項14に記載のモバイル画像キャプチャデバイス。
【請求項１６】
前記ユーザインターフェースの前記ビューファインダー部分内に表示するための前記ライブビデオストリームを提供することが、2次ライブビデオストリームよりも大きい1次ライブビデオストリームを表示することを含み、
前記1次ライブビデオストリームを表示することが、前記複数のソースのうちの第1のソースからの画像を表示することから、前記複数のソースのうちの第2のソースからの画像を表示することの間で自動的に切り替えることを含む、請求項14に記載のモバイル画像キャプチャデバイス。
【請求項１７】
前記複数のソースのうちの前記第1のソースが、前向きカメラを備え、前記複数のソースのうちの前記第2のソースが、後方向きカメラを備える、請求項16に記載のモバイル画像キャプチャデバイス。
【請求項１８】
巻戻し動作を実行するための方法であって、
1つまたは複数のコンピューティングデバイスによって、ユーザインターフェースのビューファインダー部分内に表示するためのライブビデオストリームを提供するステップであって、前記ライブビデオストリームが、画像キャプチャシステムの現在の視野の少なくとも一部分を示す、ステップと、
前記1つまたは複数のコンピューティングデバイスによって、一時的画像バッファ内に、前記ライブビデオストリームからのビデオセグメントを記憶するステップであって、前記ビデオセグメントが、前記画像キャプチャシステムによってキャプチャされた複数の画像フレームを備える、ステップと、
前記1つまたは複数のコンピューティングデバイスによって、前記ユーザインターフェースの前記ビューファインダー部分に向けられ、巻戻し動作を要求する、ユーザ入力を受信するステップと、
前記巻戻し動作を要求する前記ユーザ入力の受信に応答して、前記1つまたは複数のコンピューティングデバイスによって、前記ビデオセグメントに対して、前記ユーザインターフェースの前記ビューファインダー部分内で前記巻戻し動作を実行するステップであって、前記巻戻し動作中に、前記ビデオセグメントの前記画像フレームのうちの少なくとも2つが、新しい順に前記ユーザインターフェース内に表示するために提供される、ステップと
を含む方法。
【請求項１９】
前記1つまたは複数のコンピューティングデバイスによって、前記画像フレームのうちの1つのユーザによる選択を受信するステップと、
前記1つまたは複数のコンピューティングデバイスによって、メモリロケーション内に、前記選択された画像フレームを記憶するステップと
をさらに含む、請求項18に記載の方法。
【請求項２０】
前記巻戻し動作を実行するステップが、前記ユーザ入力の速度に正に相関する速度で、前記ビデオセグメントの第1の画像フレームの表示と前記ビデオセグメントの少なくとも第2の画像フレームの表示との間で、前記ユーザインターフェースを遷移させるステップを含む、請求項18に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般にモバイル画像キャプチャシステムおよび方法に関する。より詳細には、本開示は、モバイル画像キャプチャデバイスを用いて巻戻し動作を実行するためのシステムおよび方法に関する。
【背景技術】
【０００２】
ますます多くの個人が、写真およびビデオなどの視覚コンテンツをキャプチャし、記憶し、共有し、それと対話するために、コンピューティングデバイスを使用するようになっている。特に、一部の個人にとって、スマートフォンまたはタブレットなどのハンドヘルドコンピューティングデバイスは、写真およびビデオなどの視覚コンテンツをキャプチャするために使用される主なデバイスである。
【０００３】
しかしながら、ハンドヘルドコンピューティングデバイスを介して、動的な対象物の写真またはビデオをキャプチャするとき、ユーザは、キャプチャするように意図した瞬間を逃すことが多くなり得る。たとえば、ユーザは、カメラアプリケーションを開き、ハンドヘルドコンピューティングデバイスを、自分がキャプチャするように意図する対象物に向け、次いで、シャッターボタン(たとえば、ユーザインターフェース内の仮想シャッターボタン)を操作して、画像をキャプチャするようにハンドヘルドコンピューティングデバイスに命令することができる。しかしながら、対象物の動的性質のために、ユーザがシャッターボタンを押すことが遅すぎるか、または早すぎることが容易に起こり得る。結果として、キャプチャされた写真またはビデオは、ユーザがキャプチャするように意図したものを含まないことがある。この問題は、特定のイベントの画像、および/または非従順な被写体(たとえば、子供またはペット)を示す画像をキャプチャしようと試みるとき、特に重大である。結果として、ユーザがカメラアプリケーションを開いており、所望の被写体に向けているときでさえ、ユーザは、所望の画像をキャプチャするためにちょうど正しい時間に写真をキャプチャすることに失敗することがある。たとえば、ユーザは、自分の幼い子供が両目をカメラに向けて自然に笑う、まさにそのほんの一瞬に画像をキャプチャすることに失敗することがある。
【０００４】
既存のシステムにおいてこの問題に対処するために一般に実行される1つのアクションは、ユーザが単に、所望のイベントが起こると予想される時間の周囲で、極めて多数の画像をキャプチャすることである。しかしながら、この試みられている解決策には、いくつかの問題がある。第1に、ユーザが多数の画像をキャプチャしたとしても、依然として、ユーザが実際に所望の瞬間をキャプチャする保証はない。第2に、この試みられている解決策によって、ユーザのデバイス上に多数の写真が記憶されることになる。これによって、メモリリソースの不十分な割振り(たとえば、ぼやけている、または不要な写真の記憶)が生じるか、または、ユーザが手動で自分の写真のコレクションを検討し、不要な、もしくはさもなければ所望の対象物を示さない画像を削除することが必要になる。
【発明の概要】
【課題を解決するための手段】
【０００５】
本開示の実施形態の態様および利点は、以下の説明において部分的に記載されるか、または説明から学習され得るか、または実施形態の実施を通して学習され得る。
【０００６】
本開示の1つの例示的な態様は、モバイル画像キャプチャデバイスを対象とする。モバイル画像キャプチャデバイスは、画像フレームをキャプチャするように動作可能な画像キャプチャシステムを含み得る。モバイル画像キャプチャデバイスは、1つまたは複数のプロセッサと、命令を記憶する1つまたは複数の非一時的コンピュータ可読媒体とを含み得、命令が、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに動作を実行させる。動作は、ユーザインターフェースのビューファインダー部分内に表示するためのライブビデオストリームを提供することを含み得る。ライブビデオストリームは、モバイル画像キャプチャデバイスの画像キャプチャシステムの現在の視野の少なくとも一部分を示すことができる。動作は、一時的画像バッファ内に、ライブビデオストリームからのビデオセグメントを記憶することを含み得る。ビデオセグメントは、画像キャプチャシステムによってキャプチャされた複数の画像フレームを含み得る。動作は、ユーザインターフェースのビューファインダー部分に向けられ、巻戻し動作を要求する、ユーザ入力を受信することを含み得る。動作は、巻戻し動作を要求するユーザ入力の受信に応答して、ビデオセグメントに対して、ユーザインターフェースのビューファインダー部分内で巻戻し動作を実行することを含み得る。巻戻し動作中に、ビデオセグメントの画像フレームのうちの少なくとも2つが、新しい順(reverse chronological order)にユーザインターフェース内に表示するために提供され得る。
【０００７】
本開示の別の例示的な態様は、モバイル画像キャプチャデバイスを対象とする。モバイル画像キャプチャデバイスは、複数のソースから画像フレームをキャプチャするように動作可能な画像キャプチャシステムを含み得る。各ソースは、それぞれの視野を有し得る。モバイル画像キャプチャデバイスは、1つまたは複数のプロセッサと、命令を記憶する1つまたは複数の非一時的コンピュータ可読媒体とを含み得、命令が、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに動作を実行させる。動作は、ユーザインターフェースのビューファインダー部分内に表示するためのライブビデオストリームを提供することを含み得る。ライブビデオストリームは、複数のソースから生成された複合環境ストリームを含み得る。動作は、一時的画像バッファ内に、ライブビデオストリームからのビデオセグメントを記憶することを含み得る。ビデオセグメントは、画像キャプチャシステムによってキャプチャされた複数の画像フレームを含み得る。動作は、ユーザインターフェースのビューファインダー部分に向けられ、巻戻し動作を要求する、ユーザ入力を受信することを含み得る。動作は、巻戻し動作を要求するユーザ入力の受信に応答して、ビデオセグメントに対して、ユーザインターフェースのビューファインダー部分内で巻戻し動作を実行することを含み得る。巻戻し動作中に、ビデオセグメントの画像フレームのうちの少なくとも2つが、新しい順にユーザインターフェース内に表示するために提供され得る。
【０００８】
本開示の別の例示的な態様は、巻戻し動作を実行するための方法を対象とする。方法は、1つまたは複数のコンピューティングデバイスによって、ユーザインターフェースのビューファインダー部分内に表示するためのライブビデオストリームを提供するステップを含み得る。ライブビデオストリームは、モバイル画像キャプチャデバイスの画像キャプチャシステムの現在の視野の少なくとも一部分を示すことができる。方法は、1つまたは複数のコンピューティングデバイスによって、一時的画像バッファ内に、ライブビデオストリームからのビデオセグメントを記憶するステップを含み得る。ビデオセグメントは、画像キャプチャシステムによってキャプチャされた複数の画像フレームを含み得る。方法は、1つまたは複数のコンピューティングデバイスによって、ユーザインターフェースのビューファインダー部分に向けられ、巻戻し動作を要求する、ユーザ入力を受信するステップを含み得る。方法は、1つまたは複数のコンピューティングデバイスによって、巻戻し動作を要求するユーザ入力の受信に応答して、ビデオセグメントに対して、ユーザインターフェースのビューファインダー部分内で巻戻し動作を実行するステップを含み得る。巻戻し動作中に、ビデオセグメントの画像フレームのうちの少なくとも2つが、新しい順にユーザインターフェース内に表示するために提供され得る。
【０００９】
本開示の他の態様は、様々なシステム、装置、非一時的コンピュータ可読媒体、ユーザインターフェース、および電子デバイスを対象とする。
【００１０】
本開示の様々な実施形態のこれらおよび他の特徴、態様、および利点は、以下の説明および添付の特許請求の範囲を参照すると、よりよく理解されよう。本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本開示の例示的な実施形態を示し、この説明とともに、関連する原理を説明するために役立つ。
【００１１】
当業者を対象とする実施形態の詳細な説明が、本明細書に記載され、本明細書は添付の図面を参照する。
【図面の簡単な説明】
【００１２】
【図１Ａ】本開示の例示的な実施形態による例示的なコンピューティングシステムのブロック図である。
【図１Ｂ】本開示の例示的な実施形態による例示的なコンピューティングシステムのブロック図である。
【図１Ｃ】本開示の例示的な実施形態による例示的なコンピューティングシステムのブロック図である。
【図２】本開示の例示的な実施形態による機械学習画像選択モデルの図である。
【図３】本開示の例示的な実施形態による機械学習画像キャプチャモデルの図である。
【図４】本開示の例示的な実施形態による機械学習ソース選択モデルの図である。
【図５Ａ】本開示の例示的な実施形態による、巻戻し動作の実施より前の例示的なユーザインターフェースの図である。
【図５Ｂ】本開示の例示的な実施形態による、巻戻し動作の実施中の例示的なユーザインターフェースの図である。
【図５Ｃ】本開示の例示的な実施形態による、巻戻し動作の実施中の様々な段階における例示的なユーザインターフェースの図である。
【図５Ｄ】本開示の例示的な実施形態による、記憶されることになる画像フレームの編集中の例示的なユーザインターフェースの図である。
【図５Ｅ】本開示の例示的な実施形態による、巻戻し動作の実施中に記憶するための画像フレームを提案するポップアップウィンドウを表示する、例示的なユーザインターフェースの図である。
【図６】本開示の例示的な実施形態による、1次ライブビデオフィードおよび2次ライブビデオフィードに関連付けられた切替え動作中の様々な段階における、例示的なユーザインターフェースの図である。
【図７】本開示の例示的な実施形態による、巻戻し動作を実施するための例示的な方法のフローチャート図である。
【発明を実施するための形態】
【００１３】
複数の図にわたって繰り返される参照番号は、様々な実装形態において同じ特徴を識別することを意図するものである。
【００１４】
概観
概して、本開示は、スマートフォンまたはタブレットなどのハンドヘルドコンピューティングデバイスを用いて、画像および/またはビデオをキャプチャするための、向上したユーザエクスペリエンスを提供するシステムおよび方法を対象とする。本明細書で説明するシステムおよび方法は、時間を「巻き戻す」、および、ユーザがキャプチャするためにデバイスを明示的に操作することに失敗した以前の瞬間からビデオまたは画像をキャプチャする能力を、ユーザに提供することができる。この機能によって、その瞬間が過ぎた後でも、ユーザが「完全なショット」をキャプチャすることが可能になり得る。
【００１５】
具体的には、一例では、ユーザは、ハンドヘルドデバイスのカメラを対象の被写体に向けることができ、デバイスのディスプレイのビューファインダー部分内で、カメラからのライブストリームを見ることができる。デバイスは、一時的画像バッファ内に、ライブビデオストリームからのビデオセグメント(たとえば、キャプチャされた画像のセット)を一時的に記憶することができる。ユーザがキャプチャしたい正確な瞬間にキャプチャボタンを押すことを試みるのではなく、ユーザは、その瞬間が過ぎるまで見ていることができる。次いで、ユーザは、ユーザ入力(たとえば、スワイプ、または他のモーションもしくはジェスチャー)を与えることによって、巻戻し動作を要求することができる。それに応答して、デバイスは、ビューファインダー上に表示された前の瞬間を見直すために、「時間を巻き戻す」能力をユーザに直ちに(または迅速に)提供することができる。前の瞬間は、新しい順に表示され得、かつ/またはユーザは、たとえば、スクラビング動作においてビデオセグメント中をスクロールすることによって、再生を制御することができる。ユーザは、画像のうちの1つまたは複数を、たとえば、ユーザが逃した「完全なショット」をキャプチャする写真またはビデオとして選択することができ、選択された画像が、デバイスの非一時的メモリに保存され得る。そのようにして、提案するシステムは、その瞬間が過ぎた後でも、ユーザが「完全なショット」をキャプチャすることを可能にするが、不要な画像でユーザのカメラロールをあふれさせることがなく、または、ユーザが多数の不要な写真を手動で調べて削除することを必要としない。
【００１６】
より詳細には、本開示の一態様によれば、モバイル画像キャプチャデバイス(たとえば、スマートフォンまたはタブレット)は、画像フレームをキャプチャするように動作可能な画像キャプチャシステムを含み得る。モバイル画像キャプチャデバイスは、動作を実行するように構成され得る。動作は、ユーザインターフェースのビューファインダー部分内に表示するためのライブビデオストリームを提供することを含み得る。ライブビデオストリームは、モバイル画像キャプチャデバイスの画像キャプチャシステムの現在の視野の少なくとも一部分を示すことができる。一例として、モバイル画像キャプチャデバイスは、カメラ(たとえば、前方向き(forward-facing)および/または後方向き(rearward-facing)カメラ)を含み得る。モバイル画像キャプチャデバイスは、ユーザインターフェースのビューファインダー部分上で、カメラのうちの1つまたは複数によってキャプチャされた画像のライブストリームを提供するように構成され得る。モバイル画像キャプチャデバイスは、ユーザインターフェースを表示するタッチセンシティブディスプレイ画面を含み得る。
【００１７】
モバイル画像キャプチャデバイスは、一時的画像バッファ内に、ライブビデオストリームからのビデオセグメントを記憶するように構成され得る。ビデオセグメントは、画像キャプチャシステムによってキャプチャされた複数の画像フレームを含み得る。一例として、ビデオセグメントは、たとえば、現在の時間の前の以前の時間期間の時間移動ウィンドウ(moving time window)を含み得る。ユーザインターフェースのビューファインダー部分に向けられ、巻戻し動作を要求する、ユーザ入力が受信され得る。ユーザ入力は、タッチセンシティブディスプレイ画面に対するユーザタッチアクションを含み得る。一例として、ユーザは、タッチセンシティブディスプレイ画面でスワイプ、タップ、またはさもなければタッチすることができる。ユーザ入力の受信に応答して、モバイル画像キャプチャデバイスは、ビデオセグメントに対して、ユーザインターフェースのビューファインダー部分内で巻戻し動作を実行することができる。
【００１８】
巻戻し動作中に、ビデオセグメントの画像フレームのうちの少なくとも2つが、新しい順にユーザインターフェース内に表示するために提供され得る。一例として、ビデオセグメントの少なくとも一部分が、通常の前方再生速度に対応する時間レートで逆に再生され得る。別の例として、ビデオセグメントの画像が、たとえば、スクラビング動作における、(たとえば、タッチスクリーンを介した)継続的なユーザ入力に応答する方法で表示され得る。
【００１９】
いくつかの実装形態では、モバイル画像キャプチャデバイスは、画像フレームのうちの1つのユーザ選択を受信し、非一時的メモリロケーション内に、選択された画像フレームを記憶するように構成され得る。言い換えれば、ユーザは、ビデオセグメントの画像フレームをナビゲートし、どの画像フレームを、後で見るために(たとえば、写真またはビデオとして)記憶するかを選択することができる。巻戻し動作中に、ユーザは、ビデオセグメントの画像フレームを選択的に見ることができる。ユーザが写真として保存することを望むフレームを見るとき、ユーザは、写真が非一時的メモリ内に記憶されることを要求するユーザ入力を与えることができる。そのようなユーザ入力の一例は、ユーザインターフェース内に表示された仮想キャプチャボタンをタップすることを含む。
【００２０】
いくつかの実装形態では、モバイル画像キャプチャデバイスは、ユーザが(たとえば、非一時的メモリロケーション内に記憶するより前に)巻戻し動作中に1つまたは複数の画像フレームを編集することを可能にすることができる。ユーザは、現在表示されている画像フレームに対するクロッピングまたはズーミング機能を要求するユーザ入力を実行することができる。一例として、ユーザは、クロッピング/ズーミング機能を制御するために、2本指(たとえば、ピンチングモーション)のユーザ入力を実行することができる。
【００２１】
別の例として、ユーザは、第1の画像アスペクト比(たとえば、縦長のアスペクト比)に関連付けられる第1の向き(たとえば、縦長の向き)から、第2の画像アスペクト比(たとえば、横長のアスペクト比)に関連付けられる第2の向き(たとえば、横長の向き)に、モバイル画像キャプチャデバイスを回転させることができる。それに応答して、モバイル画像キャプチャデバイスは、第1の画像アスペクト比において現在表示されている画像フレームの表示から、第2の画像アスペクト比に変更することができる。いくつかの実装形態では、モバイル画像キャプチャデバイスは、(たとえば、広角カメラを使用して)広い視野を有する画像フレームをキャプチャすることができる。画像フレームの視野は、第1の画像アスペクト比および/または第2の画像アスペクト比よりも大きく(たとえば、横長のアスペクト比よりも幅広く、かつ/または縦長のアスペクト比よりも高く)なり得る。縦長の向きにおいて画像フレームを表示するとき、モバイル画像キャプチャデバイスは、縦長のアスペクト比を有する画像フレームの一部分(たとえば、縦長のクロップされたバージョン)を表示することができる。同様に、横長の向きにおいて画像フレームを表示するとき、モバイル画像キャプチャデバイスは、横長のアスペクト比を有する画像フレームの一部分(たとえば、横長のクロップされたバージョン)を表示することができる。ユーザが画像フレームの編集を終了すると、画像フレームは、非一時的メモリロケーション内に記憶され得る。したがって、ユーザは、巻戻し動作中にモバイル画像キャプチャデバイスを単に回転させることによって、後で見るために記憶するより前に、画像フレームを迅速にクロップし得る。
【００２２】
また別の例として、ユーザは、非一時的メモリロケーション内に画像フレームを記憶するより前に、画像フレームの1つまたは複数の特性(たとえば、輝度、コントラスト、色の彩度など)の調整を要求するユーザ入力を実行することができる。モバイル画像キャプチャデバイスは、ユーザが、非一時的メモリロケーション内に記憶するより前に、ビデオセグメントの1つまたは複数の画像フレームに、様々な好適な画像またはビデオ編集機能を実行することを可能にするように構成され得る。
【００２３】
いくつかの実装形態では、ユーザは、単一のジェスチャーで、巻戻し動作を開始し、1つまたは複数の画像フレームを記憶し、巻戻し動作を終了させることができる。一例として、ユーザは、巻戻し動作を要求するために、タッチスクリーン上で自分の指を用いてスワイプジェスチャーを開始することができる。ユーザは、写真として保存することを望む画像フレームが表示されるまで、(たとえば、スクラビング動作を実行しながら)自分の指とタッチスクリーンとの間の接触を維持することができる。次いで、ユーザは、タッチスクリーンから自分の指を離して、現在表示されている画像フレームが写真として非一時的メモリロケーション内に保存されることを要求することができる。タッチスクリーンから自分の指を離すことによって、随意に巻戻し動作を終了させることもできる。それに応答して、モバイル画像キャプチャデバイスは、ユーザインターフェースのビューファインダー部分内にライブビデオストリームを表示することを再開することができる。
【００２４】
ユーザは、後で見るために、巻戻し動作中に非一時的メモリ内にビデオセグメントの一部分を同様に保存することができる。たとえば、巻戻し動作中に、ユーザは、保存したい一部分の開始および終了にマークを付けることができる。ユーザは、たとえば、仮想マーカーボタンを押すこと、タッチスクリーンから自分の指を瞬間的に離すこと、または任意の他の好適なジェスチャーもしくは入力を含む、様々なユーザ入力アクションを使用して、開始および終了にマークを付けることができる。
【００２５】
いくつかの実装形態では、上述のように、モバイル画像キャプチャデバイスは、たとえば、巻戻し動作中に、ユーザ入力の移動に応答して、スクラビング動作を実行するように構成され得る。スクラビング動作は、ユーザが(たとえば、新しい順および/または古い順(forward chronological order)に)ビデオセグメントの様々な画像フレーム間でナビゲートすることを可能にするように構成され得る。一例として、ユーザ入力は、速度を有することができ、ユーザインターフェースは、ユーザ入力の速度に正に相関する速度で、(たとえば、古い順および/または新しい順に)異なる画像フレームの表示の間で遷移され得る。より具体的には、ユーザインターフェースは、ユーザ入力の速度に正に相関する速度で、ビデオセグメントの第1の画像フレームからビデオセグメントの少なくとも第2の画像フレームの間で遷移され得る。ユーザは、ユーザ入力の方向を制御することによって、画像フレームが古い順に表示されるか、新しい順に表示されるかを制御することができる。一例として、ユーザは、新しい順に画像フレームを表示するために、左方向または下方にスワイプすることができる。ユーザは、古い順に画像フレームを表示するために、右方向または上方にスワイプすることができる。したがって、巻戻し動作中に、ユーザは、たとえば、保存したいフレームのうちの1つまたは複数を位置特定するために、ビデオセグメントの画像フレームを迅速かつ直観的にナビゲートすることができる。
【００２６】
いくつかの実装形態では、モバイル画像キャプチャデバイスは、巻戻し動作中にサムネイルストリップを表示するように構成され得る。サムネイルストリップは、複数のサムネイル画像を含み得る。サムネイル画像は、発生順に配置され得る。複数の画像のうちの現在の画像は、強調またはマーク付けされ得る。サムネイルストリップは、ビデオセグメントの複数の画像のサブセットを含み得、サブセットは、(たとえば、時間的に隣接した画像フレームに対する)ビデオセグメント内の現在の画像の相対的な発生位置を示し得る。したがって、サムネイルストリップは、ビデオセグメント内の現在の画像の関係のコンテキストの理解をユーザに提供することができる。
【００２７】
いくつかの実装形態では、ライブビデオストリームからのビデオセグメントは、時間移動ウィンドウに関連付けられた先入れ先出し(FIFO)構成において、一時的画像バッファ内に記憶され得る。時間移動ウィンドウは、現在の瞬間から時間を遡る、関連する時間期間(たとえば、5秒)を有し得る。言い換えれば、時間移動ウィンドウは、現在の瞬間から以前の5秒を含み得る。モバイル画像キャプチャデバイスは、一時的画像バッファ内に、ライブビデオストリームからの画像を記憶することができる。モバイル画像キャプチャデバイスは、画像がその時間期間よりも古くなるとき(たとえば、画像が時間移動ウィンドウから「出る」とき)、一時的画像バッファから画像を破棄(たとえば、削除または上書き)することができる。この点において、記憶が先入れ先出し構成として表され得る。したがって、一時的画像バッファは、時間移動ウィンドウのビデオセグメントの一時的記憶を提供することができる。
【００２８】
いくつかの実装形態では、モバイル画像キャプチャデバイスは、ユーザがキャプチャボタンを押すことなしに、ビデオセグメントを記憶することを自動的に開始するように構成され得る。一例として、ライブビデオストリームが、インターフェースのビューファインダー部分内に表示するために提供されるとき、ビデオセグメントが、ライブビデオストリームから一時的画像バッファ内に自動的に記憶され得る。ユーザは、カメラアプリケーションを開くことができ、開かれるカメラアプリケーションに応答して、モバイル画像キャプチャデバイスは、(たとえば、さらなるユーザ入力なしに)ビデオセグメントを自動的に記憶することを開始することができる。
【００２９】
別の例として、カメラアプリケーションは、様々なモードにおいて動作可能であり得、カメラアプリケーションがモードのうちの少なくとも2つにおいて動作させられるとき、ビデオセグメントが自動的に記憶され得る。カメラアプリケーションが最初に開かれるとき、カメラアプリケーションが画像キャプチャモードであるか、ビデオキャプチャモードであるかにかかわらず、ビデオセグメントが自動的に記憶され得る。したがって、ユーザは、カメラアプリケーションを開き、モバイル画像キャプチャデバイスを被写体に向けることができる。次いで、ユーザが(たとえば、ビデオまたは写真において)キャプチャするように意図した瞬間を逃す場合、ユーザがカメラアプリケーションを最初に開いたときに、巻戻し動作を使用するように意図していなかった場合でも、ユーザは、「遡って」逃した瞬間をキャプチャするために、巻戻し動作を要求することができる。
【００３０】
いくつかの実装形態では、モバイル画像キャプチャデバイスは、ビデオセグメントのどの画像フレームを保存するかについての1つまたは複数の提案をユーザに提供するように構成され得る。巻戻し動作中に、モバイル画像キャプチャデバイスは、画像フレームのうちの1つまたは複数を強調するか、またはさもなければ、ユーザの注意をそれらに向けることができる。一例として、ポップアップウィンドウが、記憶するために提案される1つまたは複数の画像フレームのプレビューを表示するように出現することができる。ポップアップウィンドウは、将来にそのような画像フレームを自動的に記憶すること、より大きいウィンドウ内で(たとえば、ユーザインターフェース全体において)提案された画像フレームを見ること、および/または提案された画像フレームを破棄することを行うオプションをユーザに提供することができる。
【００３１】
モバイル画像キャプチャデバイスは、たとえば、様々な写真特性に基づいて、記憶するための1つまたは複数の画像フレームを選択および推奨するように構成され得る。そのような特性の例には、構成、照明、および、ビデオセグメントまたはビデオセグメントの隣接した部分に関する画像フレームに関連付けられた時間的コンテキストなど、コンテキストが含まれ得る。モバイルデバイスがそのような特性に対するユーザの選好について学習することを、ユーザが承諾した場合、モバイル画像キャプチャデバイスは、そのような写真特性に対するユーザの選好について学習された情報に基づいて、記憶するために推奨するための画像フレームを選択することができる。
【００３２】
重要なことには、ユーザは、本明細書で説明するシステム、プログラム、または特徴がユーザ情報(たとえば、選好)の収集を可能にすることができるか否かと、いつそうであるかの両方について、ユーザが選択を行うことを可能にする制御を提供され得る。追加として、いくつかのデータは、個人を特定可能な情報が除去されるように、記憶または使用される前に1つまたは複数の方法で扱われ得る。たとえば、ユーザの識別情報は、ユーザについて個人を特定可能な情報を決定することができないように扱われ得る。したがって、ユーザは、何の情報がユーザについて収集されるか、どのようにその情報が使用されるか、および何の情報がユーザに提供されるかに対する制御を有することができる。
【００３３】
いくつかの実装形態では、モバイル画像キャプチャデバイスは、記憶するためにユーザに提案するための画像フレームを選択するために、機械学習画像選択モデルを活用することができる。機械学習画像選択モデルは、ビデオセグメントの複数の画像フレームを受信するように構成され得る。複数の画像フレームの受信に応答して、機械学習画像選択モデルは、複数の画像フレームのうちの少なくとも1つの選択を表すフレーム選択セットを出力することができる。モバイル画像キャプチャデバイスは、機械学習画像選択モデルに、ビデオセグメントの複数の画像フレームを入力するように構成され得る。フレーム選択セットは、機械学習画像選択モデルの出力として受信され得る。モバイル画像キャプチャデバイスは、フレーム選択セットによって表された画像フレームのうちの少なくとも1つを含む、ユーザインターフェース内に表示するための選択提案を提供することができる。したがって、モバイル画像キャプチャデバイスは、機械学習画像選択モデルを介して画像を選択し、ユーザによって記憶するために選択された画像を提案することができる。
【００３４】
いくつかの実装形態では、ユーザが承諾した場合、モバイル画像キャプチャデバイスは、いかなるユーザ入力を受信することもなしに、ライブビデオストリームから画像フレームを自動的にキャプチャすることができる。一例として、モバイル画像キャプチャデバイスは、(たとえば、非一時的メモリ内に)記憶するために、ライブビデオストリームから1つまたは複数の画像フレームを選択するために、機械学習画像キャプチャモデルを活用することができる。機械学習画像キャプチャモデルは、ライブビデオストリームから画像フレームを受信するように構成され得る。画像フレームの受信に応答して、機械学習キャプチャモデルは、(たとえば、非一時的メモリ内に)画像フレームを記憶するか否かを表すキャプチャ判断を出力することができる。モバイル画像キャプチャデバイスは、機械学習画像キャプチャモデルに入力される画像フレームを取得するために、(たとえば、一定の間隔で)ライブビデオストリームをサンプリングするように構成され得る。キャプチャ判断は、機械学習画像キャプチャモデルの出力として受信され得る。機械学習キャプチャモデルは、たとえば、画像フレームの特性、およびユーザが承諾した場合、ユーザの選好を含む、様々なファクタに基づいて、キャプチャするための画像を選択するように構成され得る。
【００３５】
モバイル画像キャプチャデバイスは、キャプチャ判断に基づいて、画像を自動的にキャプチャすることができる。したがって、モバイル画像キャプチャデバイスは、いかなるユーザ入力を受信することもなしに、ライブビデオストリームから画像フレームを自動的にキャプチャするために、機械学習画像キャプチャモデルを活用することができる。
【００３６】
いくつかの実装形態では、一時的画像バッファは、巻戻し動作の終わりに、または巻戻し動作の実行に関連付けられたカメラアプリケーションが閉じられるとき、削除またはクリアされ得る。一例として、ユーザは、巻戻し動作を要求し、非一時的メモリロケーション内に記憶するための1つまたは複数の画像フレームを選択することができる。巻戻し動作は、画像フレームの記憶時に自動的に終了され得る。代替的に、ユーザは、たとえば、ユーザインターフェース内に表示される仮想「終了」ボタンを押すこと、または別の好適なユーザ入力によって、巻戻し動作が終了されることを要求することができる。それに応答して、モバイル画像キャプチャデバイスは、巻戻し動作を終了し、表示するためのライブビデオストリームの提供を再開し得る。モバイル画像キャプチャデバイスは、巻戻し動作の終わりに、ライブビデオストリームが表示のために提供されるとき、一時的画像バッファをクリアまたは上書きすることができる。代替的に、モバイル画像キャプチャデバイスは、巻戻し動作からの一時的画像バッファを保持し、第2の巻戻し動作を予期して、2次一時的画像バッファ内にライブビデオストリームからのビデオセグメントを記憶することを開始することができる。そのような実装形態では、モバイル画像キャプチャデバイスは、たとえば、巻戻し動作に関連付けられたカメラアプリケーションが閉じられるまで、1つまたは複数の巻戻し動作に関連付けられた一時的画像バッファを保持することができる。カメラアプリケーションが閉じられるとき、一時的画像バッファは、後続の動作のためにデバイスのリソースを解放するためにクリアされ得る。
【００３７】
本開示の別の態様によれば、モバイル画像キャプチャデバイスは、ユーザインターフェースのビューファインダー部分内に表示するためのライブビデオストリームを提供することができ、ライブビデオストリームは、複数のソースから生成される複合環境ストリームを含み得る。複数のソースは、複数のオンデバイスカメラ(たとえば、前方向きカメラおよび後方向きカメラ)に対応し得る。モバイル画像キャプチャデバイスは、複数のソースからの2つ以上のビデオストリームを空間的に配置および/または接合(たとえば、「スティッチング」)することによって、複合環境ストリームを生成するように構成され得る。一例では、複合環境ストリームは、広角画像の部分と結合された狭角画像を含み得、その場合、広角画像の部分が広角画像の全体よりも小さく、広角画像の部分が、狭角画像の外周の少なくとも一部分を取り囲む。これによって、複合環境ストリームが、狭角画像のみによって示されるシーンの周囲のより大きい環境を示すことが可能になり得る。いくつかの実装形態では、複合環境ストリームは、少なくとも部分的にパノラマであり得る。したがって、一例では、複合環境ストリームは、後方向きカメラによってキャプチャされた狭角画像、およびまた正面向き(frontward-facing)カメラによってキャプチャされた広角画像の部分(または、その逆も同様)を示し、それによって、モバイル画像キャプチャデバイスの前と後ろの両方にある環境を示す画像を提供することができる。
【００３８】
いくつかの実装形態では、ユーザインターフェースは、同じインターフェース内で複数のライブビデオストリームを提示することができる。たとえば、1次ライブビデオストリームと2次ライブビデオストリームの両方が、同じインターフェース内で提示され得る。複数のライブビデオストリームに対応する複数のビデオセグメントが、1つまたは複数の一時的バッファ内に記憶され得る。各ライブビデオストリームは、カメラの視野に直接対応し得、かつ/または、ライブビデオストリームのうちの1つが、複数のカメラ(または、それらの部分組合せ)から導出され得る。
【００３９】
いくつかの実装形態では、1次ライブビデオストリームは、2次ライブビデオストリームよりも大きく表示され得る。1次ライブビデオストリームは、第1のソース(たとえば、後方向きカメラ)からの画像を含み得、ユーザインターフェースのビューファインダー部分の1次ビューイング部分内で表示され得る。2次ライブビデオストリームは、第2のソース(たとえば、前方向きカメラ)からの画像を含み得、ビューファインダーの2次ビューイング部分内で表示され得る。1次ビューイング部分は、2次ビューイング部分よりも大きくなり得る。たとえば、2次ビューイング部分は、1次ビューイング部分の部分上にオーバーレイされるか、または重ね合わせられ得る。たとえば、2次ビューイング部分は、1次ビューイング部分の部分上に重ね合わせられる吹き出し内に提示され得る。
【００４０】
1次および/または2次ライブビデオストリームは、キャプチャされた画像フレームに関連付けられた、より大きいコンテキスト情報をユーザに提供することができる。一例として、2次ライブビデオストリームは、1次ライブビデオストリーム内で表示された対象物を見るときの自分の顔の表情のビューを、ユーザに提供することができる。別の例として、2次ライブビデオストリームは、1次ライブビデオストリームを見るとき、自分の周囲の環境についての視覚情報をユーザに提供することによって、「バックミラー」として作用することができる。
【００４１】
複合環境ストリームは、ユーザの環境についての視覚情報をユーザに提供することができる、広い視野を有し得る。複合環境ストリームの視野は、個々に1次ライブストリームおよび2次ライブストリームのそれぞれの視野よりも大きくなり得る。一例として、1次ライブストリームおよび2次ライブストリームは、相補的または重複する視野を有し得る。結果として、いくつかの実装形態では、複合環境ストリームは、360度の視野を有し得る。一例では、複合環境ストリームは、狭角カメラによってキャプチャされた画像の一部または全部、およびまた、広角カメラによってキャプチャされた画像の一部または全部の複合物を含み得る。たとえば、広角カメラによってキャプチャされた画像の部分が、狭角カメラによってキャプチャされた画像の周囲に追加され得る。したがって、複合環境ストリームは、ユーザがキャプチャするように意図する対象物に加えて、周囲の環境についての視覚情報をユーザに提供することができる。
【００４２】
巻戻し動作は、ストリームの一方または両方に対して実行され得る。より具体的には、複合環境ストリームを含むビデオセグメントが、一時的画像バッファ内に記憶され得、巻戻し動作がビデオセグメントに対して実行され得る。代替的に、1次ビデオセグメントが、1次ライブビデオストリームから記憶され得、2次ビデオセグメントが、2次ライブビデオストリームから記憶され得る。巻戻し動作を要求するユーザ入力に応答して、モバイル画像キャプチャデバイスは、ライブビデオストリームの一方または両方に対して巻戻し動作を実行することができる。
【００４３】
ユーザは、複数のソースのうちのどのソースがユーザインターフェースのビューファインダー部分の1次ビューイング部分内に表示されるかを制御することが可能であり得る。ユーザは、巻戻し動作の実行前および/またはその間に、この制御を用いることができる。一例として、ユーザは、どのソースがビューファインダーの1次ビューイング部分内に表示されるかの変更を要求するユーザ入力を実行することができる。ユーザは、2次ビューイング部分内に表示されたソースがビューファインダーの1次ビューイング部分内に表示されることを要求するために、ビューファインダーの2次ビューイング部分にタッチすることができる。モバイル画像キャプチャデバイスは、1次ビューイング部分および2次ビューイング部分内に表示されたそれぞれのソースを切り替えることができる。
【００４４】
いくつかの実装形態では、ユーザは、巻戻し動作中に、どのソースが1次ビューイング部分内に表示されるかを制御(たとえば、選択)することが可能であり得る。ユーザは、自分の選択を反映する複合環境ストリームのビデオを記憶することが可能であり得る。より具体的には、ビデオは、ユーザが巻戻し動作中に制御したものと同じ時間に同じ方法で、再生中にソースを切り替えることができる。
【００４５】
一例として、ユーザは、モバイル画像キャプチャデバイスの後方向きカメラを被写体に向けることができる。モバイル画像キャプチャデバイスの前方向きカメラが、ユーザに向けられ得る。ユーザは、巻戻し動作を要求し、以前の時間間隔(たとえば、以前の5秒)の記憶されたビデオセグメントからの画像フレームを見ることができる。ユーザは、非一時的メモリ内にビデオとして記憶したいビデオセグメントの一部分を位置特定および選択するために、(少なくとも部分的に逆順に)画像フレーム中をスクラブすることができる。次いで、ユーザは、たとえば、古い順に通常の時間レートでビデオセグメントの部分を見ることによって、記憶したいビデオセグメントの部分をプレビューすることができる。このプレビュー中に、ユーザは、(たとえば、前方向きカメラまたは後方向きカメラからの)どのライブビデオストリームを、ビューファインダーの1次ビューイング部分内に表示するかを選択することができる。次いで、ユーザは、ビューファインダーの1次ビューイング部分内に表示されるビデオストリームが、プレビュー中に自分が制御したものと同じ時間に同じ方法で変更される、ビデオを保存することができる。代替的に、ユーザは、後の時間に再生中に同様に制御され得る複合ビデオを、非一時的メモリ内に記憶することができる。より具体的には、そのような複合ビデオの再生中に、ユーザは、どのソースがユーザインターフェースのビューファインダー部分の1次ビューイング部分内に表示されるかを選択することができる。
【００４６】
いくつかの実装形態では、モバイル画像キャプチャデバイスは、どのソースがビューファインダーの1次ビューイング部分内に表示されるかを自動的に制御する(たとえば、変更するか、または切り替える)ように構成され得る。たとえば、モバイル画像キャプチャデバイスは、ビューファインダーの1次ビューイング部分内で前向き(front-facing)カメラまたは後ろ向き(rear-facing)カメラの表示の間で切り替えるように構成され得る。モバイル画像キャプチャデバイスは、ライブビューイング中に(たとえば、ユーザインターフェースのビューファインダー部分内に表示するためのライブビデオストリームを提供しているとき)、および/または巻戻し動作中に、この切替えを実行するように構成され得る。追加または代替として、モバイル画像キャプチャデバイスは、非一時的メモリ内に記憶される複合ビデオの再生中に、この切替えを実行するように構成され得る。
【００４７】
一例として、モバイル画像キャプチャデバイスは、どのソースがビューファインダーの1次ビューイング部分内に表示されるかを選択するために、機械学習ソース選択モデルを活用することができる。機械学習ソース選択モデルは、第1のビデオソースからの第1の画像フレームのセットと、第2のビデオソースからの第2の画像フレームのセットとを受信するように構成され得る。第1のビデオソースおよび第2のビデオソースは、それぞれのライブビデオストリーム、またはそれぞれのライブビデオストリームの記憶されたビデオに対応し得る。第1のビデオソースおよび第2のビデオソースは、前方向きカメラおよび後方向きカメラからのライブビデオストリームに対応し得る。第1のビデオソースおよび第2のビデオソースの受信に応答して、機械学習ソース選択モデルは、どのソースをビューファインダーの1次ビューイング部分内に表示するか(たとえば、いつ前向きカメラからのビデオストリームの表示から、後ろ向きカメラからのビデオストリームの間で切り替えるか)の時間整合指示を表す、ソース選択出力を出力することができる。モバイル画像キャプチャデバイスは、機械学習ソース選択モデルに、複数のソース(たとえば、ライブビデオストリーム、または記憶されたビデオ)からの画像を入力するように構成され得る。ソース選択出力は、機械学習ソース選択モデルの出力として受信され得る。モバイル画像キャプチャデバイスは、ソース選択出力に基づいて、1次ビューイング部分および/または2次ビューイング部分内のソースの表示を制御することができる。
【００４８】
代替的に、モバイル画像キャプチャデバイスは、どの時間にどのソースを1次ビューイング部分内に表示するかに関して、ユーザに提案を提供することができる。そのような提案は、ビデオセグメント内のそれぞれの画像フレームまたはそれぞれの時間に関連付けられ得る。そのような提案は、巻戻し動作の間、および/または記憶された複合ビデオを見ている間に提供され得る。
【００４９】
本開示のシステムおよび方法は、いくつかの技術的効果および利益を提供する。一例として、本明細書で説明するシステムおよび方法は、最小の計算リソースを使用して、巻戻し動作を実行することができ、それによって、ビデオをキャプチャし、非一時的メモリ内に記憶し、次いで抽出するための画像フレームおよび/またはビデオセグメントのために、記憶されたビデオを見直す場合と比較して、より高速でより効率的な実行になり得る。たとえば、いくつかの実装形態では、本明細書で説明するシステムおよび方法は、計算需要が低減されるので、たとえば、スマートフォンなどのユーザコンピューティングデバイス上で迅速かつ効率的に実行され得る。したがって、本開示の態様は、たとえば、(たとえば、ユーザプライバシーの向上、および/または通信コストの削減のために)クラウドコンピューティングが利用不可能であるか、またはさもなければ望ましくないシナリオにおいて、そのようなデバイスを使用して、ビデオキャプチャのアクセス可能性および有効性を向上させることができる。
【００５０】
このように、本明細書で説明するシステムおよび方法は、モバイル画像キャプチャのより効率的な動作を提供することができる。ビデオのセグメントをキャプチャし、一時的メモリ内に記憶することによって、特定の画像が抽出され、非一時的メモリ内に記憶され得る際の効率を向上させることができる。具体的には、たとえば、笑いもしくは笑顔のキャプチャ、またはスポーツイベントもしくは気象事象のキャプチャなど、短時間のおよび/または予測不可能なイベントのキャプチャを向上させることができる。したがって、本明細書で説明するシステムおよび方法は、バースト写真など、より効率的ではないか、または外部サウンド/モーショントリガなど、追加の機器を必要とする、画像キャプチャ動作を回避する。
【００５１】
一例として、本開示のシステムおよび方法は、アプリケーション、ブラウザプラグインのコンテキスト内、または他のコンテキストにおいて含まれるか、またはさもなければ採用され得る。したがって、いくつかの実装形態では、本開示のモデルは、ラップトップ、タブレット、またはスマートフォンなど、ユーザコンピューティングデバイス内に含まれるか、またはさもなければ記憶され、それによって実装され得る。また別の例として、モデルは、クライアントサーバ関係に従ってユーザコンピューティングデバイスと通信するサーバコンピューティングデバイス内に含まれるか、またはさもなければ記憶され、それによって実装され得る。たとえば、モデルは、ウェブサービスの一部分(たとえば、ウェブ電子メールサービス)として、サーバコンピューティングデバイスによって実装され得る。
【００５２】
次に、図を参照しながら、本開示の例示的な実施形態についてさらに詳細に説明する。
【００５３】
例示的なデバイスおよびシステム
図1Aは、本開示の例示的な実施形態による、巻戻し動作を実行するための例示的なコンピューティングシステム100のブロック図を示す。システム100は、ネットワーク180上で通信可能に結合される、ユーザコンピューティングデバイス102と、サーバコンピューティングシステム130と、トレーニングコンピューティングシステム150とを含む。
【００５４】
ユーザコンピューティングデバイス102は、一般に、スマートフォンまたはタブレットなどのモバイル画像キャプチャデバイスである。他の実装形態では、ユーザコンピューティングデバイス102は、たとえば、パーソナルコンピューティングデバイス(たとえば、ラップトップもしくはデスクトップ)、ゲームコンソールもしくはコントローラ、ウェアラブルコンピューティングデバイス、埋込みコンピューティングデバイス、または任意の他のタイプのコンピューティングデバイスなど、任意のタイプのコンピューティングデバイスであり得る。
【００５５】
ユーザコンピューティングデバイス102は、1つまたは複数のプロセッサ112と、メモリ114とを含む。1つまたは複数のプロセッサ112は、任意の好適な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であり得、1つのプロセッサ、または動作可能に接続される複数のプロセッサであり得る。メモリ114は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せなど、1つまたは複数の非一時的コンピュータ可読記憶媒体を含み得る。メモリ114は、データ116と、ユーザコンピューティングデバイス102に動作を実行させるために、プロセッサ112によって実行される命令118とを記憶することができる。メモリ114はまた、非一時的メモリロケーション120と、一時的画像バッファ122とを含み得る。一時的画像バッファ122は、たとえば、RAMなど、情報の一時的記憶に好適である非一時的コンピュータ可読記憶媒体に対応し得る。非一時的メモリロケーション120は、フラッシュメモリデバイス、磁気ディスクなど、情報の非一時的記憶に好適である非一時的コンピュータ可読記憶媒体に対応し得る。
【００５６】
ユーザコンピューティングデバイス102は、1つまたは複数の機械学習画像選択モデル123、機械学習画像キャプチャモデル124、および/または機械学習ソース選択モデル125を記憶するか、または含み得る。たとえば、機械学習モデル123、124、125は、ニューラルネットワーク(たとえば、ディープニューラルネットワーク)、または他の多層非線形モデルなど、様々な機械学習モデルであり得るか、またはさもなければそれらを含み得る。ニューラルネットワークは、リカレントニューラルネットワーク(たとえば、長短期メモリリカレントニューラルネットワーク)、フィードフォワードニューラルネットワーク、または他の形態のニューラルネットワークを含み得る。例示的なモデル123、124、125については、図2〜図4を参照しながら説明する。
【００５７】
いくつかの実装形態では、1つまたは複数のモデル123、124、125は、ネットワーク180上でサーバコンピューティングシステム130から受信され、ユーザコンピューティングデバイスメモリ114内に記憶され、1つまたは複数のプロセッサ112によって使用またはさもなければ実装され得る。いくつかの実装形態では、ユーザコンピューティングデバイス102は、(たとえば、モデル123、124、125の複数のインスタンスにわたって並列動作を実行するために)モデル123、124、125のうちの1つまたは複数の、複数の並列インスタンスを実装することができる。
【００５８】
追加または代替として、1つまたは複数のモデル140、142、144は、クライアントサーバ関係に従ってユーザコンピューティングデバイス102と通信するサーバコンピューティングシステム130内に含まれるか、またはさもなければ記憶され、それによって実装され得る。たとえば、1つまたは複数のモデル140、142、144は、ユーザコンピューティングデバイス102において記憶および実装され得、かつ/あるいは、1つまたは複数のモデル140は、サーバコンピューティングシステム130において記憶および実装され得る。
【００５９】
ユーザコンピューティングデバイス102はまた、ユーザ入力を受信する、1つまたは複数のユーザ入力構成要素126を含み得る。たとえば、ユーザ入力構成要素126は、ユーザ入力オブジェクト(たとえば、指またはスタイラス)のタッチに対してセンシティブである、タッチセンシティブ構成要素(たとえば、タッチセンシティブディスプレイ画面、またはタッチパッド)であり得る。タッチセンシティブ構成要素は、仮想キーボードを実装するための働きをすることができる。他の例示的なユーザ入力構成要素には、マイクロフォン、従来のキーボード、またはそれによってユーザが通信を入力することができる他の手段が含まれる。
【００６０】
ユーザコンピューティングデバイス102はまた、1つまたは複数のカメラ128を含み得る。たとえば、ユーザコンピューティングデバイス102は、前方向きカメラおよび/または後方向きカメラを含み得る。一例として、ユーザコンピューティングデバイス102は、スマートフォンに対応し得、後方向きカメラは、ユーザがスマートフォンを保持し、ディスプレイを見ているとき、後方向きカメラが後ろのユーザに向くように、スマートフォンのディスプレイに隣接して配置され得る。同様に、前方向きカメラは、ユーザがスマートフォンを保持し、ディスプレイを見ているとき、前方向きカメラがユーザから離れる方に向くように配置され得る。ユーザコンピューティングデバイス102は、様々な異なる特性をもつ、任意の数の異なるタイプおよび配置のカメラ128を含み得る。一例では、デバイス102は、複数の前方向きカメラ、および/または複数の後方向きカメラを有し得る。カメラ128は、狭角カメラ、広角カメラ、またはそれらの組合せであり得る。カメラ128は、異なるフィルタを有し、かつ/または異なる光の波長を受け入れ可能(たとえば、1つの赤外線カメラ、および1つの可視光スペクトルカメラ)であり得る。一例では、デバイス102は、第1の後方向きカメラ(たとえば、広角レンズおよび/またはf/1.8絞り付き)と、第2の後方向きカメラ(たとえば、望遠レンズおよび/またはf/2.4絞り付き)と、正面向きカメラ(たとえば、広角レンズおよび/またはf/2.2絞り付き)とを有し得る。別の具体的な例では、デバイス102は、以下のカメラ、すなわち、後方向きカメラ(たとえば、12.2メガピクセル、レーザーオートフォーカス、および/またはデュアルピクセル位相検出付き)と、第1の正面向きカメラ(たとえば、8.1メガピクセルおよび/またはf/1.8絞り付き)と、第2の正面向きカメラ(たとえば、8.1メガピクセル、広角レンズ、ならびに/または可変f/1.8およびf/2.2絞り付き)とを含み得る。
【００６１】
サーバコンピューティングシステム130は、1つまたは複数のプロセッサ132と、メモリ134とを含み得る。1つまたは複数のプロセッサ132は、任意の好適な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であり得、1つのプロセッサ、または動作可能に接続される複数のプロセッサであり得る。メモリ134は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せなど、1つまたは複数の非一時的コンピュータ可読記憶媒体を含み得る。メモリ134は、データ136と、サーバコンピューティングシステム130に動作を実行させるために、プロセッサ132によって実行される命令138とを記憶することができる。
【００６２】
いくつかの実装形態では、サーバコンピューティングシステム130は、1つまたは複数のサーバコンピューティングデバイスを含むか、またはさもなければそれによって実装される。サーバコンピューティングシステム130が複数のサーバコンピューティングデバイスを含む事例では、そのようなサーバコンピューティングデバイスは、逐次計算アーキテクチャ、並列計算アーキテクチャ、またはそれらの何らかの組合せに従って動作することができる。
【００６３】
上記で説明したように、サーバコンピューティングシステム130は、1つまたは複数の機械学習モデル140、142、144を記憶するか、またはさもなければ含み得る。たとえば、モデル140、142、144は、ニューラルネットワーク(たとえば、ディープリカレントニューラルネットワーク)、または他の多層非線形モデルなど、様々な機械学習モデルであり得るか、またはさもなければそれらを含み得る。例示的なモデル140、142、144については、図2〜図4を参照しながら説明する。
【００６４】
サーバコンピューティングシステム130は、ネットワーク180上で通信可能に結合されるトレーニングコンピューティングシステム150との対話を介して、モデル140をトレーニングすることができる。トレーニングコンピューティングシステム150は、サーバコンピューティングシステム130とは別個であり得るか、またはサーバコンピューティングシステム130の一部分であり得る。
【００６５】
トレーニングコンピューティングシステム150は、1つまたは複数のプロセッサ152と、メモリ154とを含む。1つまたは複数のプロセッサ152は、任意の好適な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であり得、1つのプロセッサ、または動作可能に接続される複数のプロセッサであり得る。メモリ154は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せなど、1つまたは複数の非一時的コンピュータ可読記憶媒体を含み得る。メモリ154は、データ156と、トレーニングコンピューティングシステム150に動作を実行させるために、プロセッサ152によって実行される命令158とを記憶することができる。いくつかの実装形態では、トレーニングコンピューティングシステム150は、1つまたは複数のサーバコンピューティングデバイスを含むか、またはさもなければそれによって実装される。
【００６６】
トレーニングコンピューティングシステム150は、たとえば、誤差逆伝播法(backwards propagation of errors)など、様々なトレーニングまたは学習技法を使用して、サーバコンピューティングシステム130において記憶された機械学習モデル140、142、144のうちの1つまたは複数をトレーニングする、モデルトレーナー160を含み得る。いくつかの実装形態では、誤差逆伝播法を実行することは、打ち切り型通時的逆伝播(truncated backpropagation through time)を実行することを含み得る。モデルトレーナー160は、トレーニングされているモデルの汎化機能を改善するために、いくつかの汎化技法(たとえば、重み減衰、ドロップアウトなど)を実行することができる。
【００６７】
具体的には、モデルトレーナー160は、トレーニングデータ162のセットに基づいて、モデル140、142、144のうちの1つまたは複数をトレーニングすることができる。トレーニングデータ162は、たとえば、図2〜図4を参照しながら以下で説明するように、モデル入力および/または出力のラベル付きまたはラベルなしのセットを含み得る。
【００６８】
いくつかの実装形態では、ユーザが承諾を与えた場合、トレーニング例が、ユーザコンピューティングデバイス102によって(たとえば、ユーザコンピューティングデバイス102のユーザによって以前に提供された通信に基づいて)提供され得る。したがって、そのような実装形態では、ユーザコンピューティングデバイス102に提供されたモデル140、142、144は、ユーザコンピューティングデバイス102から受信されたユーザ固有の通信データにおいて、トレーニングコンピューティングシステム150によってトレーニングされ得る。いくつかの事例では、このプロセスは、モデルの個別化と呼ばれることがある。たとえば、モデル140、142、144のうちの1つまたは複数は、(たとえば、写真特性についての)ユーザ選好に基づいてトレーニングされ得る。
【００６９】
モデルトレーナー160は、所望の機能を提供するために利用されるコンピュータ論理を含む。モデルトレーナー160は、ハードウェア、ファームウェア、および/または汎用プロセッサを制御するソフトウェアにおいて実装され得る。たとえば、いくつかの実装形態では、モデルトレーナー160は、記憶デバイス上に記憶され、メモリ内にロードされ、1つまたは複数のプロセッサによって実行される、プログラムファイルを含む。他の実装形態では、モデルトレーナー160は、RAMハードディスク、または光もしくは磁気媒体など、有形のコンピュータ可読記憶媒体内に記憶される、1つまたは複数のコンピュータ実行可能命令のセットを含む。
【００７０】
ネットワーク180は、ローカルエリアネットワーク(たとえば、イントラネット)、ワイドエリアネットワーク(たとえば、インターネット)、またはそれらの何らかの組合せなど、任意のタイプの通信ネットワークであり得、任意の数のワイヤードまたはワイヤレスリンクを含み得る。一般に、ネットワーク180上の通信は、多種多様な通信プロトコル(たとえば、TCP/IP、HTTP、SMTP、FTP)、符号化もしくはフォーマット(たとえば、HTML、XML)、および/または保護方式(たとえば、VPN、セキュアHTTP、SSL)を使用して、任意のタイプのワイヤードおよび/またはワイヤレス接続を介して搬送され得る。
【００７１】
図1Aは、本開示を実装するために使用され得る、1つの例示的なコンピューティングシステムを示す。他のコンピューティングシステムも同様に使用され得る。たとえば、いくつかの実装形態では、ユーザコンピューティングデバイス102は、モデルトレーナー160と、トレーニングデータセット162とを含み得る。そのような実装形態では、モデル140、142、144のトレーニングと使用の両方が、ユーザコンピューティングデバイス102においてローカルに行われ得る。そのような実装形態のうちのいくつかでは、ユーザコンピューティングデバイス102は、ユーザ固有のデータに基づいて、モデル140、142、144を個別化するために、モデルトレーナー160を実装することができる。
【００７２】
図1Bは、本開示の例示的な実施形態に従って実施する、例示的なコンピューティングデバイス10のブロック図を示す。コンピューティングデバイス10は、ユーザコンピューティングデバイス、またはサーバコンピューティングデバイスであり得る。
【００７３】
コンピューティングデバイス10は、いくつかのアプリケーション(たとえば、アプリケーション1〜N)を含む。各アプリケーションは、それ自体の機械学習ライブラリおよび機械学習モデルを含む。たとえば、各アプリケーションは、機械学習モデルを含み得る。例示的なアプリケーションには、テキストメッセージングアプリケーション、電子メールアプリケーション、ディクテーションアプリケーション、仮想キーボードアプリケーション、ブラウザアプリケーションなどが含まれる。
【００７４】
図1Bに示されるように、各アプリケーションは、たとえば、1つまたは複数のセンサー、コンテキストマネージャ、デバイス状態構成要素、および/または追加の構成要素など、コンピューティングデバイスのいくつかの他の構成要素と通信することができる。いくつかの実装形態では、各アプリケーションは、API(たとえば、パブリックAPI)を使用して、各デバイス構成要素と通信することができる。いくつかの実装形態では、各アプリケーションによって使用されるAPIは、そのアプリケーションに固有である。
【００７５】
図1Cは、本開示の例示的な実施形態に従って実施する、例示的なコンピューティングデバイス50のブロック図を示す。コンピューティングデバイス50は、ユーザコンピューティングデバイス、またはサーバコンピューティングデバイスであり得る。
【００７６】
コンピューティングデバイス50は、いくつかのアプリケーション(たとえば、アプリケーション1〜N)を含む。各アプリケーションは、中央インテリジェンスレイヤと通信している。例示的なアプリケーションには、テキストメッセージングアプリケーション、電子メールアプリケーション、ディクテーションアプリケーション、仮想キーボードアプリケーション、ブラウザアプリケーションなどが含まれる。いくつかの実装形態では、各アプリケーションは、API(たとえば、すべてのアプリケーションにわたって共通のAPI)を使用して、中央インテリジェンスレイヤ(および、その中に記憶されたモデル)と通信することができる。
【００７７】
中央インテリジェンスレイヤは、いくつかの機械学習モデルを含む。たとえば、図1Cに示されるように、それぞれの機械学習モデル(たとえば、モデル)は、アプリケーションごとに提供され、中央インテリジェンスレイヤによって管理され得る。他の実装形態では、2つ以上のアプリケーションが、単一の機械学習モデルを共有することができる。たとえば、いくつかの実装形態では、中央インテリジェンスレイヤは、アプリケーションのすべてのための単一のモデル(たとえば、単一のモデル)を提供することができる。いくつかの実装形態では、中央インテリジェンスレイヤは、コンピューティングデバイス50のオペレーティングシステム内に含まれるか、またはさもなければそれによって実装される。
【００７８】
中央インテリジェンスレイヤは、中央デバイスデータレイヤと通信することができる。中央デバイスデータレイヤは、コンピューティングデバイス50のためのデータの集中リポジトリであり得る。図1Cに示されるように、中央デバイスデータレイヤは、たとえば、1つまたは複数のセンサー、コンテキストマネージャ、デバイス状態構成要素、および/または追加の構成要素など、コンピューティングデバイスのいくつかの他の構成要素と通信することができる。いくつかの実装形態では、中央デバイスデータレイヤは、API(たとえば、プライベートAPI)を使用して、各デバイス構成要素と通信することができる。
【００７９】
例示的なモデル配置
図2は、本開示の例示的な実施形態による、例示的な機械学習画像選択モデル200のブロック図を示す。いくつかの実装形態では、機械学習画像選択モデル200は、(たとえば、ビデオセグメントの)複数の画像フレーム202を受信するように構成され得る。複数の画像フレーム202の受信に応答して、機械学習画像選択モデル200は、複数の画像フレーム202のうちの少なくとも1つの選択を表すフレーム選択セット204を出力することができる。
【００８０】
図3は、例示的な機械学習画像キャプチャモデル300のブロック図を示す。機械学習画像キャプチャモデル300は、(たとえば、ライブビデオストリームから)画像フレーム302を受信するように構成され得る。画像フレーム302の受信に応答して、機械学習キャプチャモデルは、(たとえば、図1Aを参照しながら上記で説明した非一時的メモリロケーション120内に)画像フレームを記憶するか否かを表すキャプチャ判断304を出力することができる。
【００８１】
図4は、たとえば、図6を参照しながら以下で説明するように、どのソースがユーザインターフェースのビューファインダー部分の1次ビューイング部分内に表示されるかを選択するための、例示的な機械学習ソース選択モデル400のブロック図を示す。機械学習ソース選択モデル400は、第1のビデオソース402からの第1の画像フレームのセットと、第2のビデオソース404からの第2の画像フレームのセットとを受信するように構成され得る。第1のビデオソース402および第2のビデオソース404は、それぞれのライブビデオストリーム、またはそれぞれのライブビデオストリームの記憶されたビデオに対応し得る。一例として、第1のビデオソース402および第2のビデオソース404は、それぞれ、前方向きおよび後方向きカメラ128からのライブビデオストリームに対応し得る。第1のビデオソース402および第2のビデオソース404の受信に応答して、機械学習ソース選択モデル400は、たとえば、図6を参照しながら以下で説明するように、どのソースをビューファインダーの1次ビューイング部分内に表示するか(たとえば、いつ前向きカメラからのビデオストリームの表示から、後ろ向きカメラからのビデオストリームの間で切り替えるか)の時間整合指示を表す、ソース選択出力406を出力することができる。
【００８２】
概して、本開示は、スマートフォンまたはタブレットなどのハンドヘルドコンピューティングデバイスを用いて、画像および/またはビデオをキャプチャするための、向上したユーザエクスペリエンスを提供するシステムおよび方法を対象とする。本明細書で説明するシステムおよび方法は、時間を「巻き戻す」、および、ユーザがキャプチャするためにデバイスを明示的に操作することに失敗した以前の瞬間からビデオまたは画像をキャプチャする能力を、ユーザに提供することができる。この機能によって、その瞬間が過ぎた後でも、ユーザが「完全なショット」をキャプチャすることが可能になり得る。
【００８３】
図5Aおよび図5Bを参照すると、一例では、ユーザは、ハンドヘルドデバイス502のカメラを対象の被写体に向けることができ、デバイス502のディスプレイ505のビューファインダー部分504内で、カメラからのライブストリームを見ることができる。この例では、対象の被写体は、男性の頭上に帽子を投げている女性である。デバイス502は、一時的画像バッファ122(図1A)内に、ライブビデオストリームからのビデオセグメント(たとえば、キャプチャされた画像のセット)を一時的に記憶することができる。ユーザがキャプチャしたい正確な瞬間にキャプチャボタン508(「シャッターリリースボタン」としても知られている)を押すことを試みるのではなく、ユーザは、その瞬間が過ぎるまで見ていることができる。次いで、ユーザは、ユーザ入力(たとえば、ディスプレイ画面505に接触するユーザの手506によって示されるような、スワイプ、または他のモーションもしくはジェスチャー)を与えることによって、巻戻し動作を要求することができる。それに応答して、デバイス502は、ビューファインダー部分504上に表示された前の瞬間を見直すために、(図5Bに示されるように)「時間を巻き戻す」能力をユーザに直ちに(または迅速に)提供することができる。前の瞬間は、新しい順に表示され得、かつ/またはユーザは、たとえば、スクラビング動作においてビデオセグメント中をスクロールすることによって、再生を制御することができる。ユーザは、画像のうちの1つまたは複数を、たとえば、ユーザが逃した「完全なショット」をキャプチャする写真またはビデオとして選択することができ、選択された画像が、デバイス102の非一時的メモリロケーション120(図1A)に保存され得る。そのようにして、提案するシステムは、その瞬間が過ぎた後でも、ユーザが「完全なショット」をキャプチャすることを可能にするが、不要な画像でユーザのカメラロールをあふれさせることがなく、または、ユーザが多数の不要な写真を手動で調べて削除することを必要としない。
【００８４】
より詳細には、図5Cを参照すると、本開示の一態様によれば、モバイル画像キャプチャデバイス(たとえば、スマートフォンまたはタブレット)は、画像フレームをキャプチャするように動作可能な画像キャプチャシステムを含み得る。図5Cでは、モバイル画像キャプチャデバイスのユーザインターフェースは、4つの異なる発生順のフレーム552、554、558、562内に示されている。モバイル画像キャプチャデバイスは、動作を実行するように構成され得る。最初のフレーム552を参照すると、動作は、ユーザインターフェースのビューファインダー部分504内に表示するためのライブビデオストリームを提供することを含み得る。ライブビデオストリームは、モバイル画像キャプチャデバイスの画像キャプチャシステムの現在の視野の少なくとも一部分を示すことができる。一例として、モバイル画像キャプチャデバイスは、(たとえば、図1Aを参照しながら上記で説明したカメラ128に対応する)前方向きおよび/または後方向きカメラなどのカメラを含み得る。モバイル画像キャプチャデバイスは、ユーザインターフェースのビューファインダー部分504上で、カメラのうちの1つまたは複数によってキャプチャされた画像のライブストリームを提供するように構成され得る。モバイル画像キャプチャデバイスは、ユーザインターフェースを表示するタッチセンシティブディスプレイ画面を含み得る。
【００８５】
モバイル画像キャプチャデバイスは、一時的画像バッファ122(図1A)内に、ライブビデオストリームからのビデオセグメントを記憶するように構成され得る。ビデオセグメントは、画像キャプチャシステムによってキャプチャされた複数の画像フレームを含み得る。一例として、ビデオセグメントは、たとえば、現在の時間の前の以前の時間期間の時間移動ウィンドウを含み得る。
【００８６】
図5Cのフレーム554を参照すると、ユーザインターフェースのビューファインダー部分504に向けられ、巻戻し動作を要求する、ユーザ入力が受信され得る。ユーザ入力は、タッチセンシティブディスプレイ画面に対するユーザタッチアクションを含み得る。たとえば、ユーザ入力は、図5Cのフレーム554内で、ユーザの手の点線の輪郭と、タッチセンシティブディスプレイ画面に対するスワイプ入力を表す、付随する矢印556とによって示されている。他の例として、ユーザは、タッチセンシティブディスプレイ画面をタップ、またはさもなければタッチする。ユーザ入力の受信に応答して、モバイル画像キャプチャデバイスは、ビデオセグメントに対して、ユーザインターフェースのビューファインダー部分内で巻戻し動作を実行することができる。
【００８７】
図5Cにおけるフレーム558を参照すると、巻戻し動作中に、ビデオセグメントの画像フレームのうちの少なくとも2つが、新しい順にユーザインターフェース内に表示するために提供され得る。一例として、ビデオセグメントの少なくとも一部分が、通常の前方再生速度に対応する時間レートで逆に再生され得る。別の例として、ビデオセグメントの画像が、たとえば、(ユーザの手の点線の輪郭と、左右に向いた、付随する矢印のセット560とによって示された)スクラビング動作における、(たとえば、タッチスクリーンを介した)継続的なユーザ入力に応答する方法で表示され得る。
【００８８】
ユーザは、(矢印560によって表された)スクラビング動作を介して、(たとえば、新しい順および/または古い順に)ビデオセグメントの様々な画像フレーム間でナビゲートすることができる。一例として、ユーザ入力は、速度を有することができ、ユーザインターフェースは、ユーザ入力の速度に正に相関する速度で、(たとえば、古い順および/または新しい順に)異なる画像フレームの表示の間で遷移され得る。より具体的には、ユーザインターフェースは、ユーザ入力の速度に正に相関する速度で、ビデオセグメントの第1の画像フレームからビデオセグメントの少なくとも第2の画像フレームの間で遷移され得る。ユーザは、ユーザ入力の方向を制御することによって、画像フレームが古い順に表示されるか、新しい順に表示されるかを制御することができる。一例として、ユーザは、新しい順に画像フレームを表示するために、左方向または下方にスワイプすることができる。ユーザは、古い順に画像フレームを表示するために、右方向または上方にスワイプすることができる。したがって、巻戻し動作中に、ユーザは、たとえば、保存したいフレームのうちの1つまたは複数を位置特定するために、ビデオセグメントの画像フレームを迅速かつ直観的にナビゲートすることができる。
【００８９】
いくつかの実装形態では、モバイル画像キャプチャデバイスは、巻戻し動作中にサムネイルストリップ510を表示するように構成され得る。サムネイルストリップ510は、複数のサムネイル画像を含み得る。サムネイル画像は、発生順に配置され得る。複数の画像のうちの現在の画像518は、強調またはさもなければマーク付けされ得る。サムネイルストリップ510は、ビデオセグメントの複数の画像のサブセットを含み得、サブセットは、(たとえば、時間的に隣接した画像フレームに対する)ビデオセグメント内の現在の画像の相対的な発生位置を示し得る。したがって、サムネイルストリップ510は、ビデオセグメント内の現在の画像の関係のコンテキストの理解をユーザに提供することができる。
【００９０】
図5Cのフレーム562を参照すると、いくつかの実装形態では、モバイル画像キャプチャデバイスは、画像フレームのうちの1つのユーザ選択を受信し、非一時的メモリロケーション120(図1A)内に、選択された画像フレームを記憶するように構成され得る。言い換えれば、ユーザは、ビデオセグメントの画像フレームをナビゲートし、どの画像フレームを、後で見るために(たとえば、写真またはビデオとして)記憶するかを選択することができる。巻戻し動作中に、ユーザは、ビデオセグメントの画像フレームを選択的に見ることができる。ユーザが写真として保存することを望むフレームを見るとき、ユーザは、写真が非一時的メモリ(たとえば、図1Aを参照しながら説明した非一時的メモリロケーション120)内に記憶されることを要求するユーザ入力を与えることができる。そのようなユーザ入力の一例は、ユーザインターフェース内に表示された仮想キャプチャボタン508をタップすることを含む。追加として、いくつかの実装形態では、ユーザは、たとえば、「すべて保存」ボタン568をタップすることによって、非一時的メモリロケーション120内に、すべての一時的に記憶された画像を保存することができる。モバイル画像キャプチャデバイスは、画像が保存されたことを示す通知570を、ユーザインターフェース内で提供することができる。
【００９１】
図5Dを参照すると、いくつかの実装形態では、モバイル画像キャプチャデバイスは、ユーザが(たとえば、非一時的メモリ内に記憶するより前に)巻戻し動作中に1つまたは複数の画像フレームを編集することを可能にすることができる。図5Dは、バスケットボールを「ダンクシュート」するために女子を持ち上げる男性の画像を編集する様々な段階における、モバイル画像キャプチャデバイスの複数のフレーム580、586、588を含む。図5Dのフレーム580を参照すると、ユーザは、現在表示されている画像フレームに対するクロッピングまたはズーミング機能を要求するユーザ入力を実行することができる。一例として、ユーザは、クロッピング/ズーミング機能を制御するために、(図5Dのフレーム580内で一連の円582によって表された)2本指の「ピンチングモーション」ユーザ入力を実行することができる。より具体的には、モバイル画像キャプチャデバイスは、ユーザインターフェース内に表示される画像の部分に対応する画像ファイルを、非一時的メモリロケーション120に保存し得る。ユーザは、キャプチャボタン508をタップすることによって、画像キャプチャデバイスが画像を保存することを要求することができる。
【００９２】
図5Dのフレーム586および588は、巻戻し動作中に1つまたは複数の画像フレームを編集するための別の技法を示す。ユーザは、たとえば、フレーム586内に示されるような第1の向きから、たとえば、フレーム588内に示されるような第2の向きに、モバイル画像キャプチャデバイスを回転させることができる。第1の向き(たとえば、縦長の向き)は、第1の画像アスペクト比(たとえば、縦長のアスペクト比)に関連付けられ得る。第2の向き(たとえば、横長の向き)は、第2の画像アスペクト比(たとえば、横長のアスペクト比)に関連付けられ得る。それに応答して、モバイル画像キャプチャデバイスは、第1の画像アスペクト比において現在表示されている画像フレームの表示から、第2の画像アスペクト比に変更することができる。次いで、ユーザは、たとえば、キャプチャボタン508をタップすることによって、ビューファインダー内に現在表示されているような画像を保存することができる。
【００９３】
いくつかの実装形態では、モバイル画像キャプチャデバイスは、(たとえば、広角カメラを使用して)広い視野を有する画像フレームをキャプチャすることができる。画像フレームの視野は、第1の画像アスペクト比および/または第2の画像アスペクト比よりも大きく(たとえば、横長のアスペクト比よりも幅広く、かつ/または縦長のアスペクト比よりも高く)なり得る。縦長の向きにおいて画像フレームを表示するとき、モバイル画像キャプチャデバイスは、縦長のアスペクト比を有する画像フレームの一部分(たとえば、縦長のクロップされたバージョン)を表示することができる。同様に、横長の向きにおいて画像フレームを表示するとき、モバイル画像キャプチャデバイスは、横長のアスペクト比を有する画像フレームの一部分(たとえば、横長のクロップされたバージョン)を表示することができる。ユーザが画像フレームの編集を終了すると、画像フレームは、たとえば、ユーザによるキャプチャボタン508のタップに応答して、非一時的メモリ内に記憶され得る。したがって、ユーザは、巻戻し動作中にモバイル画像キャプチャデバイスを単に回転させることによって、後で見るために記憶するより前に、画像フレームを迅速にクロップし得る。したがって、いくつかの実装形態では、画像フレームの全体が一時的画像バッファ内に記憶され得、ユーザは、巻戻し動作中に、事後にそのような画像フレーム内で空間的に検討/修正および編集することができる。
【００９４】
また別の例として、ユーザは、非一時的メモリ内に画像フレームを記憶するより前に、画像フレームの1つまたは複数の特性(たとえば、輝度、コントラスト、色の彩度など)の調整を要求するユーザ入力を実行することができる。モバイル画像キャプチャデバイスは、ユーザが、非一時的メモリロケーション内に記憶するより前に、ビデオセグメントの1つまたは複数の画像フレームに、様々な好適な画像またはビデオ編集機能を実行することを可能にするように構成され得る。
【００９５】
いくつかの実装形態では、ユーザは、単一のジェスチャーで、巻戻し動作を開始し、1つまたは複数の画像フレームを記憶し、巻戻し動作を終了させることができる。一例として、ユーザは、巻戻し動作を要求するために、タッチスクリーン上で自分の指を用いてスワイプジェスチャーを開始することができる。ユーザは、写真として保存することを望む画像フレームが表示されるまで、(たとえば、スクラビング動作を実行しながら)自分の指とタッチスクリーンとの間の接触を維持することができる。次いで、ユーザは、タッチスクリーンから自分の指を離して、現在表示されている画像フレームが写真として非一時的メモリ内に保存されることを要求することができる。タッチスクリーンから自分の指を離すことによって、随意に巻戻し動作を終了させることもできる。それに応答して、モバイル画像キャプチャデバイスは、ユーザインターフェースのビューファインダー部分内にライブビデオストリームを表示することを再開することができる。
【００９６】
ユーザは、後で見るために、巻戻し動作中に非一時的メモリ内にビデオセグメントの一部分を同様に保存することができる。たとえば、巻戻し動作中に、ユーザは、保存したい一部分の開始および終了にマークを付けることができる。ユーザは、たとえば、仮想マーカーボタンを押すこと、タッチスクリーンから自分の指を瞬間的に離すこと、または任意の他の好適なジェスチャーもしくは入力を含む、様々なユーザ入力アクションを使用して、開始および終了にマークを付けることができる。
【００９７】
いくつかの実装形態では、ライブビデオストリームからのビデオセグメントは、時間移動ウィンドウに関連付けられた先入れ先出し(FIFO)構成において、一時的画像バッファ122(図1A)内に記憶され得る。時間移動ウィンドウは、現在の瞬間から時間を遡る、関連する時間期間(たとえば、5秒)を有し得る。言い換えれば、時間移動ウィンドウは、現在の瞬間から以前の5秒を含み得る。モバイル画像キャプチャデバイスは、一時的画像バッファ122(図1A)内に、ライブビデオストリームからの画像を記憶することができる。モバイル画像キャプチャデバイスは、そのような画像がその時間期間よりも古くなるとき(たとえば、画像が時間移動ウィンドウから「出る」とき)、一時的メモリ(たとえば、図1Aを参照しながら上記で説明した一時的画像バッファ122)から画像を破棄(たとえば、削除または上書き)することができる。この点において、記憶が先入れ先出し構成として表され得る。したがって、一時的画像バッファ122(図1A)は、時間移動ウィンドウのビデオセグメントの一時的記憶を提供することができる。
【００９８】
いくつかの実装形態では、モバイル画像キャプチャデバイスは、ユーザが、たとえば、キャプチャボタン(たとえば、図5A〜図5Dを参照しながら上記で説明したキャプチャボタン508)を押すことによって、そのような記憶を要求することなしに、ビデオセグメントを記憶することを自動的に開始するように構成され得る。一例として、ライブビデオストリームが、インターフェースのビューファインダー部分内に表示するために提供されるとき、ビデオセグメントが、ライブビデオストリームから一時的画像バッファ122(図1A)内に自動的に記憶され得る。ユーザは、カメラアプリケーションを開くことができ、開かれるカメラアプリケーションに応答して、モバイル画像キャプチャデバイスは、(たとえば、さらなるユーザ入力なしに)ビデオセグメントを自動的に記憶することを開始することができる。
【００９９】
別の例として、カメラアプリケーションは、様々なモードにおいて動作可能であり得、カメラアプリケーションがモードのうちの少なくとも2つにおいて動作させられるとき、ビデオセグメントが自動的に記憶され得る。カメラアプリケーションが最初に開かれるとき、カメラアプリケーションが画像キャプチャモードであるか、ビデオキャプチャモードであるかにかかわらず、ビデオセグメントが自動的に記憶され得る。したがって、ユーザは、カメラアプリケーションを開き、モバイル画像キャプチャデバイスを被写体に向けることができる。次いで、ユーザが(たとえば、ビデオまたは写真において)キャプチャするように意図した瞬間を逃す場合、ユーザがカメラアプリケーションを最初に開いたときに、巻戻し動作を使用するように意図していなかった場合でも、ユーザは、「遡って」逃した瞬間をキャプチャするために、巻戻し動作を要求することができる。
【０１００】
図5Eを参照すると、いくつかの実装形態では、モバイル画像キャプチャデバイスは、ビデオセグメントのどの画像フレームを保存するかについての1つまたは複数の提案をユーザに提供するように構成され得る。図5Eのフレーム590は、巻戻し動作中のモバイル画像キャプチャデバイスを示す。ユーザが、保存する可能性のある画像を見直しているとき、モバイル画像キャプチャデバイスは、画像フレームのうちの1つまたは複数を強調するか、またはさもなければ、ユーザの注意をそれらに向けることができる。一例として、図5Eのフレーム592を参照すると、ポップアップウィンドウ594が、記憶するために提案される1つまたは複数の画像フレーム596のプレビューを表示するように出現することができる。ポップアップウィンドウ594は、将来にそのような画像フレームを自動的に記憶すること、より大きいウィンドウ内で(たとえば、ユーザインターフェース全体において)提案された画像フレームを見ること、提案された画像フレームを保存すること、および/または提案された画像フレームを破棄することを行うオプションをユーザに提供することができる。
【０１０１】
モバイル画像キャプチャデバイスは、たとえば、様々な写真特性に基づいて、記憶するための1つまたは複数の画像フレームを選択および推奨するように構成され得る。そのような特性の例には、構成、照明、および、ビデオセグメントまたはビデオセグメントの隣接した部分に関する画像フレームに関連付けられた時間的コンテキストなど、コンテキストが含まれ得る。モバイルデバイスがそのような特性に対するユーザの選好について学習することを、ユーザが承諾した場合、モバイル画像キャプチャデバイスは、そのような写真特性に対するユーザの選好について学習された情報に基づいて、記憶するために推奨するための画像フレームを選択することができる。
【０１０２】
重要なことには、ユーザは、本明細書で説明するシステム、プログラム、または特徴がユーザ情報(たとえば、選好)の収集を可能にすることができるか否かと、いつそうであるかの両方について、ユーザが選択を行うことを可能にする制御を提供され得る。追加として、いくつかのデータは、個人を特定可能な情報が除去されるように、記憶または使用される前に1つまたは複数の方法で扱われ得る。たとえば、ユーザの識別情報は、ユーザについて個人を特定可能な情報を決定することができないように扱われ得る。したがって、ユーザは、何の情報がユーザについて収集されるか、どのようにその情報が使用されるか、および何の情報がユーザに提供されるかに対する制御を有することができる。
【０１０３】
いくつかの実装形態では、モバイル画像キャプチャデバイスは、記憶するためにユーザに提案するための画像フレームを選択するために、たとえば、図2を参照しながら説明したような、機械学習画像選択モデルを活用することができる。再び図2を参照すると、モバイル画像キャプチャデバイスは、機械学習画像選択モデル200に、ビデオセグメントの複数の画像フレーム202を入力するように構成され得る。フレーム選択セット204は、機械学習画像選択モデル200の出力として受信され得る。モバイル画像キャプチャデバイスは、フレーム選択セット204によって表された画像フレームのうちの少なくとも1つを含む、ユーザインターフェース内に(たとえば、上記で説明したポップアップウィンドウ594内に)表示するための選択提案を提供することができる。したがって、モバイル画像キャプチャデバイスは、機械学習画像選択モデル200を介して画像を選択し、ユーザによって記憶するために選択された画像を提案することができる。
【０１０４】
いくつかの実装形態では、ユーザが承諾した場合、モバイル画像キャプチャデバイスは、いかなるユーザ入力を受信することもなしに、ライブビデオストリームから画像フレームを自動的にキャプチャすることができる。モバイル画像キャプチャデバイスは、(たとえば、非一時的メモリロケーション120内に)記憶するために、ライブビデオストリームから1つまたは複数の画像フレームを選択するために、たとえば、図3を参照しながら説明したような、機械学習画像キャプチャモデル300を活用することができる。たとえば、再び図3を参照すると、機械学習画像キャプチャモデルは、ライブビデオストリームから画像フレーム302を受信するように構成され得る。画像フレーム302の受信に応答して、機械学習キャプチャモデル300は、(たとえば、非一時的メモリロケーション120内に)画像フレームを記憶するか否かを表すキャプチャ判断304を出力することができる。モバイル画像キャプチャデバイスは、機械学習画像キャプチャモデル300に入力される画像フレーム302を取得するために、(たとえば、一定の間隔で)ライブビデオストリームをサンプリングするように構成され得る。キャプチャ判断は、機械学習画像キャプチャモデル300の出力として受信され得る。機械学習キャプチャモデル300は、たとえば、画像フレームの特性、およびユーザが承諾した場合、ユーザの選好を含む、様々なファクタに基づいて、キャプチャするための画像を選択するように構成され得る。
【０１０５】
モバイル画像キャプチャデバイスは、キャプチャ判断に基づいて、画像を自動的にキャプチャすることができる。したがって、モバイル画像キャプチャデバイスは、いかなるユーザ入力を受信することもなしに、ライブビデオストリームから画像フレームを自動的にキャプチャするために、機械学習画像キャプチャモデル300を活用することができる。
【０１０６】
いくつかの実装形態では、一時的画像バッファ122は、巻戻し動作の終わりに、または巻戻し動作の実行に関連付けられたカメラアプリケーションが閉じられるとき、削除またはクリアされ得る。一例として、ユーザは、巻戻し動作を要求し、非一時的メモリロケーション120内に記憶するための1つまたは複数の画像フレームを選択することができる。巻戻し動作は、画像フレームの記憶時に自動的に終了され得る。代替的に、ユーザは、たとえば、ユーザインターフェース内に表示され得る(たとえば、図5Eにおいて「X」598によって表された)仮想「終了」ボタンを押すことによって、巻戻し動作が終了されることを要求することができる。それに応答して、モバイル画像キャプチャデバイスは、巻戻し動作を終了し、表示するためのライブビデオストリームの提供を再開し得る。モバイル画像キャプチャデバイスは、巻戻し動作の終わりに、ライブビデオストリームが表示のために提供されるとき、一時的画像バッファ122をクリアまたは上書きすることができる。代替的に、モバイル画像キャプチャデバイスは、巻戻し動作からの一時的画像バッファ122を保持し、第2の巻戻し動作を予期して、2次一時的画像バッファ内にライブビデオストリームからのビデオセグメントを記憶することを開始することができる。そのような実装形態では、モバイル画像キャプチャデバイスは、たとえば、巻戻し動作に関連付けられたカメラアプリケーションが閉じられるまで、1つまたは複数の巻戻し動作に関連付けられた一時的画像バッファを保持することができる。カメラアプリケーションが閉じられるとき、一時的画像バッファは、後続の動作のためにデバイスのリソースを解放するためにクリアされ得る。
【０１０７】
図6を参照すると、本開示の別の態様によれば、モバイル画像キャプチャデバイスは、ユーザインターフェースのビューファインダー部分内に表示するためのライブビデオストリームを提供することができ、ライブビデオストリームは、複数のソースから生成される複合環境ストリームを含み得る。複数のソースは、複数のオンデバイスカメラ(たとえば、前方向きカメラおよび後方向きカメラ)に対応し得る。モバイル画像キャプチャデバイスは、複数のソースからの2つ以上のビデオストリームを空間的に配置および/または接合(たとえば、「スティッチング」)することによって、複合環境ストリームを生成するように構成され得る。
【０１０８】
いくつかの実装形態では、ユーザインターフェースは、同じインターフェース内で複数のライブビデオストリームを提示することができる。たとえば、1次ライブビデオストリームと2次ライブビデオストリームの両方が、同じインターフェース内で提示され得る。複数のライブビデオストリームに対応する複数のビデオセグメントが、1つまたは複数の一時的バッファ内に記憶され得る。各ライブビデオストリームは、カメラの視野に直接対応し得、かつ/または、ライブビデオストリームのうちの1つが、複数のカメラ(または、それらの部分組合せ)から導出され得る。
【０１０９】
いくつかの実装形態では、1次ライブビデオストリームは、2次ライブビデオストリームよりも大きく表示され得る。1次ライブビデオストリームは、第1のソース(たとえば、後方向きカメラ)からの画像を含み得、ユーザインターフェースのビューファインダー部分の1次ビューイング部分604内で表示され得る。2次ライブビデオストリームは、第2のソース(たとえば、前方向きカメラ)からの画像を含み得、ビューファインダーの2次ビューイング部分606内で表示され得る。1次ビューイング部分604は、2次ビューイング部分606よりも大きくなり得る。たとえば、2次ビューイング部分606は、1次ビューイング部分604の部分上にオーバーレイされるか、または重ね合わせられ得る。たとえば、2次ビューイング部分606は、1次ビューイング部分604の部分上に重ね合わせられる吹き出し内に提示され得る。
【０１１０】
1次および/または2次ライブビデオストリームは、キャプチャされた画像フレームに関連付けられた、より大きいコンテキスト情報をユーザに提供することができる。一例として、2次ライブビデオストリームは、たとえば、図6の第1のフレーム602内に示されるように、1次ライブビデオストリーム内で表示された対象物を見るときの自分の顔の表情のビューを、ユーザに提供することができる。別の例として、(2次ビューイング部分606内の)2次ライブビデオストリームは、たとえば、図6の第2のフレーム608内に示されるように、1次ライブビデオストリームを見るとき、自分の周囲の環境についての視覚情報をユーザに提供することによって、「バックミラー」として作用することができる。
【０１１１】
複合環境ストリームは、ユーザの環境についての視覚情報をユーザに提供することができる、広い視野を有し得る。複合環境ストリームの視野は、個々に1次ライブストリームおよび2次ライブストリームのそれぞれの視野よりも大きくなり得る。一例として、1次ライブストリームおよび2次ライブストリームは、相補的または重複する視野を有し得る。結果として、いくつかの実装形態では、複合環境ストリームは、360度の視野を有し得る。一例では、複合環境ストリームは、狭角カメラによってキャプチャされた画像の一部または全部、およびまた、広角カメラによってキャプチャされた画像の一部または全部の複合物を含み得る。たとえば、広角カメラによってキャプチャされた画像の部分が、狭角カメラによってキャプチャされた画像の周囲に追加され得る。したがって、複合環境ストリームは、ユーザがキャプチャするように意図する対象物に加えて、周囲の環境についての視覚情報をユーザに提供することができる。
【０１１２】
巻戻し動作は、ストリームの一方または両方に対して実行され得る。より具体的には、複合環境ストリームを含むビデオセグメントが、一時的画像バッファ内に記憶され得、巻戻し動作がビデオセグメントに対して実行され得る。代替的に、1次ビデオセグメントが、1次ライブビデオストリームから記憶され得、2次ビデオセグメントが、2次ライブビデオストリームから記憶され得る。巻戻し動作を要求するユーザ入力に応答して、モバイル画像キャプチャデバイスは、ライブビデオストリームの一方または両方に対して巻戻し動作を実行することができる。
【０１１３】
図6のフレーム608を参照すると、ユーザは、複数のソースのうちのどのソースがユーザインターフェースのビューファインダー部分の1次ビューイング部分604内に表示されるかを制御することが可能であり得る。ユーザは、巻戻し動作の実行前および/またはその間に、この制御を用いることができる。一例として、ユーザは、どのソースがビューファインダーの1次ビューイング部分内に表示されるかの変更を要求するユーザ入力を実行することができる。ユーザは、たとえば、図6のフレーム608内のユーザの手の点線の輪郭610によって示されるように、2次ビューイング部分内に表示されたソースがビューファインダーの1次ビューイング部分内に表示されることを要求するために、ビューファインダーの2次ビューイング部分606にタッチすることができる。モバイル画像キャプチャデバイスは、たとえば、図6のフレーム612内に示されるように、1次ビューイング部分604および2次ビューイング部分606内に表示されたそれぞれのソースを切り替えることができる。
【０１１４】
いくつかの実装形態では、ユーザは、巻戻し動作中に、どのソースが1次ビューイング部分内に表示されるかを制御(たとえば、選択)することが可能であり得る。ユーザは、自分の選択を反映する複合環境ストリームのビデオを記憶することが可能であり得る。より具体的には、ビデオは、ユーザが巻戻し動作中に制御したものと同じ時間に同じ方法で、再生中にソースを切り替えることができる。
【０１１５】
一例として、ユーザは、モバイル画像キャプチャデバイスの後方向きカメラを被写体に向けることができる。モバイル画像キャプチャデバイスの前方向きカメラが、ユーザに向けられ得る。ユーザは、巻戻し動作を要求し、以前の時間間隔(たとえば、以前の5秒)の記憶されたビデオセグメントからの画像フレームを見ることができる。ユーザは、非一時的メモリ内にビデオとして記憶したいビデオセグメントの一部分を位置特定および選択するために、たとえば、図5Cのフレーム558を参照しながら上記で説明したように、(少なくとも部分的に逆順に)画像フレーム中をスクラブすることができる。次いで、ユーザは、たとえば、古い順に通常の時間レートでビデオセグメントの部分を見ることによって、記憶したいビデオセグメントの部分をプレビューすることができる。このプレビュー中に、ユーザは、(たとえば、前方向きカメラまたは後方向きカメラからの)どのライブビデオストリームを、ビューファインダーの1次ビューイング部分604内に表示するかを選択することができる。次いで、ユーザは、ビューファインダーの1次ビューイング部分604内に表示されるビデオストリームが、プレビュー中に自分が制御したものと同じ時間に同じ方法で変更される、ビデオを保存することができる。代替的に、ユーザは、後の時間に再生中に同様に制御され得る複合ビデオを、非一時的メモリ内に記憶することができる。より具体的には、そのような複合ビデオの再生中に、ユーザは、どのソースがユーザインターフェースのビューファインダー部分の1次ビューイング部分604内に表示されるかを選択することができる。
【０１１６】
いくつかの実装形態では、モバイル画像キャプチャデバイスは、どのソースがビューファインダーの1次ビューイング部分604内に表示されるかを自動的に制御する(たとえば、変更するか、または切り替える)ように構成され得る。たとえば、モバイル画像キャプチャデバイスは、ビューファインダーの1次ビューイング部分604内で前向きカメラまたは後ろ向きカメラの表示の間で切り替えるように構成され得る。モバイル画像キャプチャデバイスは、ライブビューイング中に(たとえば、ユーザインターフェースのビューファインダー部分内に表示するためのライブビデオストリームを提供しているとき)、および/または巻戻し動作中に、この切替えを実行するように構成され得る。追加または代替として、モバイル画像キャプチャデバイスは、非一時的メモリ内に記憶される複合ビデオの再生中に、この切替えを実行するように構成され得る。
【０１１７】
一例として、モバイル画像キャプチャデバイスは、どのソースがビューファインダーの1次ビューイング部分604内に表示されるかを選択するために、たとえば、図4に関して説明したような、機械学習ソース選択モデルを活用することができる。再び図4を参照すると、機械学習ソース選択モデル400は、第1のビデオソース402からの第1の画像フレームのセットと、第2のビデオソース404からの第2の画像フレームのセットとを受信するように構成され得る。第1のビデオソース402および第2のビデオソース404は、それぞれのライブビデオストリーム、またはそれぞれのライブビデオストリームの記憶されたビデオに対応し得る。第1のビデオソース402および第2のビデオソース404は、前方向きカメラおよび後方向きカメラからのライブビデオストリームに対応し得る。第1のビデオソース402および第2のビデオソース404の受信に応答して、機械学習ソース選択モデル400は、どのソースをビューファインダーの1次ビューイング部分604内に表示するか(たとえば、いつ前向きカメラからのビデオストリームの表示から、後ろ向きカメラからのビデオストリームの間で切り替えるか)の時間整合指示を表す、ソース選択出力406を出力することができる。モバイル画像キャプチャデバイスは、機械学習ソース選択モデル400に、複数のソース(たとえば、ライブビデオストリーム、または記憶されたビデオ)からの画像を入力するように構成され得る。ソース選択出力406は、機械学習ソース選択モデル400の出力として受信され得る。再び図6を参照すると、モバイル画像キャプチャデバイスは、ソース選択出力406に基づいて、1次ビューイング部分604および/または2次ビューイング部分606内のソースの表示を制御することができる。
【０１１８】
代替的に、モバイル画像キャプチャデバイスは、どの時間にどのソースを1次ビューイング部分604内に表示するかに関して、ユーザに提案を提供することができる。そのような提案は、ビデオセグメント内のそれぞれの画像フレームまたはそれぞれの時間に関連付けられ得る。そのような提案は、巻戻し動作の間、および/または記憶された複合ビデオを見ている間に提供され得る。
【０１１９】
本開示のシステムおよび方法は、いくつかの技術的効果および利益を提供する。一例として、本明細書で説明するシステムおよび方法は、最小の計算リソースを使用して、巻戻し動作を実行することができ、それによって、ビデオをキャプチャし、非一時的メモリ内に記憶し、次いで抽出するための画像フレームおよび/またはビデオセグメントのために、記憶されたビデオを見直す場合と比較して、より高速でより効率的な実行になり得る。たとえば、いくつかの実装形態では、本明細書で説明するシステムおよび方法は、計算需要が低減されるので、たとえば、スマートフォンなどのユーザコンピューティングデバイス上で迅速かつ効率的に実行され得る。したがって、本開示の態様は、たとえば、(たとえば、ユーザプライバシーの向上、および/または通信コストの削減のために)クラウドコンピューティングが利用不可能であるか、またはさもなければ望ましくないシナリオにおいて、そのようなデバイスを使用して、ビデオキャプチャのアクセス可能性および有効性を向上させることができる。
【０１２０】
このように、本明細書で説明するシステムおよび方法は、モバイル画像キャプチャのより効率的な動作を提供することができる。ビデオのセグメントをキャプチャし、一時的メモリ内に記憶することによって、特定の画像が抽出され、非一時的メモリ内に記憶され得る際の効率を向上させることができる。具体的には、たとえば、笑いもしくは笑顔のキャプチャ、またはスポーツイベントもしくは気象事象のキャプチャなど、短時間のおよび/または予測不可能なイベントのキャプチャを向上させることができる。したがって、本明細書で説明するシステムおよび方法は、バースト写真など、より効率的ではないか、または外部サウンド/モーショントリガなど、追加の機器を必要とする、画像キャプチャ動作を回避する。
【０１２１】
例示的な方法
図7は、本開示の例示的な実施形態による、巻戻し動作を実行するための例示的な方法のフローチャート図を示す。図7は、例示および説明の目的で、特定の順序で実行されるステップを示すが、本開示の方法は、具体的に示された順序または配置に限定されない。方法700の様々なステップは、本開示の範囲から逸脱することなく、様々な方法で省略、再配置、結合、および/または適合され得る。
【０１２２】
702で、方法700は、たとえば、図5Cのフレーム552および図6を参照しながら上記で説明したように、ユーザインターフェースのビューファインダー部分内に表示するためのライブビデオストリームを提供することを含み得る。ライブビデオストリームは、モバイル画像キャプチャデバイスの画像キャプチャシステムの現在の視野の少なくとも一部分を示すことができる。
【０１２３】
704で、方法700は、たとえば、図1〜図5Cを参照しながら上記で説明したように、一時的画像バッファ内に、ライブビデオストリームからのビデオセグメントを記憶することを含み得る。ビデオセグメントは、画像キャプチャシステムによってキャプチャされた複数の画像フレームを含み得る。
【０１２４】
706で、方法700は、たとえば、図5Bおよび図5Cのフレーム554を参照しながら上記で説明したように、ユーザインターフェースのビューファインダー部分に向けられ、巻戻し動作を要求する、ユーザ入力を受信することを含み得る。
【０１２５】
708で、方法700は、たとえば、図5A〜図6を参照しながら上記で説明したように、巻戻し動作を要求するユーザ入力の受信に応答して、ビデオセグメントに対して、ユーザインターフェースのビューファインダー部分内で巻戻し動作を実行することを含み得る。巻戻し動作中に、たとえば、図5Cのフレーム558および図6を参照しながら上記で説明したように、ビデオセグメントの画像フレームのうちの少なくとも2つが、新しい順にユーザインターフェース内に表示するために提供され得る。
【０１２６】
追加の開示
本明細書で説明する技術は、サーバ、データベース、ソフトウェアアプリケーション、および他のコンピュータベースのシステム、ならびにそのようなシステムとの間でとられるアクション、および送られる情報に言及する。コンピュータベースのシステムに固有の柔軟性によって、幅広い種類の可能な構成、組合せ、ならびに構成要素の間のタスクおよび機能の分割が可能になる。たとえば、本明細書で説明するプロセスは、単一のデバイスもしくは構成要素、または組合せにおいて働く複数のデバイスもしくは構成要素を使用して実装され得る。データベースおよびアプリケーションは、単一のシステム上で実装されるか、または複数のシステムにわたって分散され得る。分散された構成要素は、逐次または並列に動作することができる。
【０１２７】
本主題について、その様々な具体例の実施形態に関して詳細に説明したが、各例は、本開示の限定ではなく、説明として提供されるものである。当業者は、上記の理解を得ると、そのような実施形態の改変、変形、および均等物を容易に作り出すことができる。したがって、本開示は、当業者に容易に明らかになるように、本主題に対するそのような変更、変形、および/または追加の包含を排除しない。たとえば、一実施形態の一部として例示または説明する特徴は、またさらなる実施形態を生じるために、別の実施形態とともに使用され得る。したがって、本開示は、そのような改変、変形、および均等物を包含するものとする。
【符号の説明】
【０１２８】
10、50  コンピューティングデバイス
100  コンピューティングシステム、システム
102  ユーザコンピューティングデバイス、デバイス
112、132、152  プロセッサ
114  メモリ、ユーザコンピューティングデバイスメモリ
116、136、156  データ
118、138、158  命令
120  非一時的メモリロケーション
122  一時的画像バッファ
123  機械学習画像選択モデル、機械学習モデル、モデル
124  機械学習画像キャプチャモデル、機械学習モデル、モデル
125  機械学習ソース選択モデル、機械学習モデル、モデル
126  ユーザ入力構成要素
127  画像キャプチャシステム
128  カメラ、前方向きおよび後方向きカメラ
130  サーバコンピューティングシステム
134、154  メモリ
140、142、144  モデル、機械学習モデル
150  トレーニングコンピューティングシステム
160  モデルトレーナー
162  トレーニングデータ、トレーニングデータセット
180  ネットワーク
200  機械学習画像選択モデル
202、302、596  画像フレーム
204  フレーム選択セット
300  機械学習画像キャプチャモデル、機械学習キャプチャモデル
304  キャプチャ判断
400  機械学習ソース選択モデル
402  第1のビデオソース
404  第2のビデオソース
406  ソース選択出力
502  ハンドヘルドデバイス、デバイス
504  ビューファインダー部分
505  ディスプレイ、ディスプレイ画面
506  手
508  キャプチャボタン、仮想キャプチャボタン
510  サムネイルストリップ
518  現在の画像
552  発生順のフレーム、最初のフレーム、フレーム
554、558、562  発生順のフレーム、フレーム
556  矢印
560  矢印のセット、矢印
568  「すべて保存」ボタン
570  通知
580、586、588、590、592、612  フレーム
582  一連の円
594  ポップアップウィンドウ
598  「X」
602  第1のフレーム
604  1次ビューイング部分
606  2次ビューイング部分
608  第2のフレーム、フレーム
610  ユーザの手の点線の輪郭
【図１Ａ】
2021524171.tif 000003
【図１Ｂ】
2021524171.tif 000004
【図１Ｃ】
2021524171.tif 000005
【図２】
2021524171.tif 000006
【図３】
2021524171.tif 000007
【図４】
2021524171.tif 000008
【図５Ａ】
2021524171.tif 000009
【図５Ｂ】
2021524171.tif 000010
【図５Ｃ】
2021524171.tif 000011
【図５Ｄ】
2021524171.tif 000012
【図５Ｅ】
2021524171.tif 000013
【図６】
2021524171.tif 000014
【図７】
2021524171.tif 000015
【国際調査報告】
2021524171.tif 000016
2021524171.tif 000017
2021524171.tif 000018
2021524171.tif 000019