(57)【要約】      （修正有）【課題】ビデオから短期間動作を撮像したフレームを選択するシステム及び方法を提供する。【解決手段】この方法は、ビデオのフレームシーケンスを受け取ること３１０と、それらから第１の複数のフレームのうちの１つに撮像された所定の動作を検出することで基準フレームを判定すること３２５を有する。ここで、第１の複数のフレームは、所定の動作の継続時間に従って判定される第１のサンプリングレートでサンプリングされるものである。さらに、フレームシーケンスから第２の複数のフレームを選択することと３３０、短期間動作を撮像したフレームを第２の複数のフレームから選択すること３４５とを更に有する。第２の複数のフレームはシーケンスにおける基準フレームに関連する場所を有し、第１のサンプリングレートより高い第２のサンプリングレートで選択され、且つ、短期間動作の継続期間に基づいて判定されるものである。【選択図】図３
2019212312.tif 000002
【特許請求の範囲】
【請求項１】
ビデオから短期間動作を撮像したフレームを選択する方法であって、
前記ビデオのフレームシーケンスを受け取ることと、
前記ビデオフレームのシーケンスから第１の複数のフレームのうちの１つに撮像された所定の動作を検出することで前記フレームシーケンス内の基準フレームを判定することと、
ここで、前記第１の複数のフレームは、前記所定の動作の継続時間に従って判定される第１のサンプリングレートで前記フレームシーケンスからサンプリングされるものである；
前記フレームシーケンスから第２の複数のフレームを選択することと、
ここで、前記第２の複数のフレームは前記シーケンスにおける前記基準フレームに関連する場所を有し、第２のサンプリングレートで選択されたものである；
前記第２のサンプリングレートは前記第１のサンプリングレートより高く、且つ、前記短期間動作の継続期間に基づいて判定されるものである；
前記短期間動作を撮像した前記フレームを前記第２の複数のフレームから選択することと、
を備えることを特徴とする方法。
【請求項２】
前記ビデオデータシーケンスに対する処理バジェット及び複数の所定の動作を受け取ることと、
ここで、前記動作の各々は、対応する第１のサンプリングレートを有する；
前記処理バジェットと前記フレームシーケンスの処理時間の推定値との比較に従って、前記複数の所定の動作から１つ以上の所定の動作を選択することと、
ここで、前記処理時間は、選択される１つ以上の所定の動作に対応する第１のサンプリングレートを使用して判定される；
を更に備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記基準フレーム内の前記所定の動作を、複数の所定の動作のうちの１つとマッチングすることと、
ここで、所定の動作の各々は、探索方向及び第２のサンプリングレートを有する；
前記マッチングした所定の動作の前記対応する探索方向及び前記第２のサンプリングレートを使用して、前記ビデオフレームシーケンスから前記第２の複数のフレームを選択することと、
を更に備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記基準フレーム、及び、前記短期間動作を撮像した前記フレームは、異なる閾値を使用して分類される、
ここで、前記基準フレームに対する前記閾値は、前記短期間動作を撮像した前記フレームに対する前記閾値より低い；
前記基準フレームを判定することは、前記所定の動作の検出に関連する信頼度スコアが閾値を満たすかを判定することを含む
ことを特徴とする請求項１の記載の方法。
【請求項５】
前記基準フレームに隣接するフレームは、前記基準フレームの分類を判定するために使用され、
前記基準フレームに対する分類マッチング閾値は、前記隣接するフレームに対する分類に従って変化することを特徴とする請求項１記載の方法。
【請求項６】
前記短期間動作を撮像した前記フレームを選択することは、画質に基づいて及び重複を回避するために、前記第２の複数のフレームに優先順位を付けること及びそれらをフィルタリングすることを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記基準フレームは第１の畳み込みニューラルネットワークを使用して位置を特定され、前記短期間動作を撮像した前記フレームは第２の畳み込みニューラルネットワークを使用して選択される、
ここで、前記第２の畳み込みニューラルネットワークは前記第１の畳み込みニューラルネットワークより高い精度を有する；
ことを特徴とする請求項１記載の方法。
【請求項８】
前記基準フレーム及び前記短期間動作を撮像した前記フレームはそれぞれ、第１の畳み込みニューラルネットワーク及び第２の畳み込みニューラルネットワークの入力次元とマッチングする解像度で復号されることを特徴とする請求項７に記載の方法。
【請求項９】
前記第２のサンプリングレートは、前記基準フレームにおいて検出された前記所定の動作の種類に基づいて判定されることを特徴とする請求項１に記載の方法。
【請求項１０】
前記基準フレームを判定するステップ、前記第２の複数のフレームを選択するステップ及び前記短期間動作を撮像した前記フレームを選択するステップは、前記ビデオの撮像時にリアルタイムで実現されることを特徴とする請求項１に記載の方法。
【請求項１１】
電子機器のインタフェースを介して前記ビデオに対する所要の処理時間を受け取ることを更に備え、
ここで前記第１のサンプリングレートは、前記所定の動作の前記継続時間及び前記所要の処理時間に従って判定される
ことを特徴とする請求項１に記載の方法。
【請求項１２】
前記ビデオを再生する電子機器のインタフェースとユーザが対話している場合に、前記ビデオの長さに対する割合である前記ビデオに対する所要の処理時間を判定することを更に備えることを特徴とする請求項１記載の方法。
【請求項１３】
前記方法の動作により検出される可能性が低い短期間動作を判定することと、
前記ビデオを撮像又は再生する電子機器上に前記短期間動作が検出される可能性が低いという指示を表示すること
を更に備えることを特徴とする請求項１に記載の方法。
【請求項１４】
前記方法の動作により検出される可能性が低い前記短期間動作は、処理バジェットと前記短期間動作に関連する所定の動作に対応する第１のサンプリングレートとに基づいて判定されることを特徴とする請求項１３に記載の方法。
【請求項１５】
前記ビデオシーケンスに関連するテーマの指示を受け取ることを更に備え、
前記第１のサンプリングレートは、前記テーマに関連する所定の動作の継続時間に基づいて判定されることを特徴とする請求項１に記載の方法。
【請求項１６】
前記テーマは、前記方法を実行する電子機器のインタフェースにおけるユーザ入力により受け取られることを特徴とする請求項１５に記載の方法。
【請求項１７】
前記テーマは、前記ビデオを分類器に入力することにより判定されることを特徴とする請求項１５に記載の方法。
【請求項１８】
コンピュータが読み込み実行することで、前記コンピュータに、ビデオから短期間動作を撮像したフレームを選択する方法を実現させるためのコンピュータプログラムであって、前記コンピュータに、
前記ビデオのフレームシーケンスを受け取らせ、
前記ビデオフレームのシーケンスから第１の複数のフレームのうちの１つに撮像された所定の動作を検出することで前記フレームシーケンス内の基準フレームを判定させ、
ここで、前記第１の複数のフレームは、前記所定の動作の継続時間に従って判定される第１のサンプリングレートで前記フレームシーケンスからサンプリングされるものである；
前記フレームシーケンスから第２の複数のフレームを選択させ、
ここで、前記第２の複数のフレームは前記シーケンスにおける前記基準フレームに関連する場所を有し、第２のサンプリングレートで選択されたものである；
前記第２のサンプリングレートは前記第１のサンプリングレートより高く、且つ、前記短期間動作の継続期間に基づいて判定されるものである；
前記短期間動作を撮像した前記フレームを前記第２の複数のフレームから選択させる
ことを特徴とするコンピュータプログラム。
【請求項１９】
撮像装置であって、
ビデオのフレームシーケンスを撮像する手段と、
ソフトウェアプログラムをグラフィックスプロセッシングユニット上で実行するように構成する手段と、当該手段は、
ビデオのフレームシーケンスを受け取る手段と、
前記フレームシーケンスから第１の複数のフレームのうちの１つに撮像された所定の動作を検出することで前記フレームシーケンス内の基準フレームを判定する手段と、
ここで、前記第１の複数のフレームは、前記所定の動作の継続時間に従って判定される第１のサンプリングレートで前記フレームシーケンスからサンプリングされるものである；
前記フレームシーケンスから第２の複数のフレームを選択する手段と、
ここで、前記第２の複数のフレームは前記シーケンスにおける前記基準フレームに関連する場所を有し、第２のサンプリングレートで選択されたものである；
前記第２のサンプリングレートは前記第１のサンプリングレートより高く、且つ、前記短期間動作の継続期間に基づいて判定されるものである；
前記短期間動作を撮像した前記フレームを前記第２の複数のフレームから選択する手段と
を含むことを特徴とする撮像装置。
【請求項２０】
システムであって、
プロセッサと、
前記プロセッサに指示するソフトウェアプログラムを格納するメモリとを有し、
前記プロセッサは、前記ソフトウェアプログラムを実行することで、
ビデオのフレームシーケンスを受け取る手段と、
前記フレームシーケンスから第１の複数のフレームのうちの１つに撮像された所定の動作を検出することで前記フレームシーケンス内の基準フレームを判定する手段と、
ここで、前記第１の複数のフレームは、前記所定の動作の継続時間に従って判定される第１のサンプリングレートで前記フレームシーケンスからサンプリングされるものである；
前記フレームシーケンスから第２の複数のフレームを選択する手段と、
ここで、前記第２の複数のフレームは前記シーケンスにおける前記基準フレームに関連する場所を有し、第２のサンプリングレートで選択されたものである；
前記第２のサンプリングレートは前記第１のサンプリングレートより高く、且つ、前記短期間動作の継続期間に基づいて判定されるものである；
前記短期間動作を撮像した前記フレームを前記第２の複数のフレームから選択する手段と
を有することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデジタルビデオ処理に関し、特に、被写体検出に基づいてビデオシーケンスのフレームを選択する方法、システム及び装置に関する。また、本発明は、被写体検出に基づいてビデオシーケンスのフレームを選択するためのコンピュータプログラムを記録したコンピュータ可読媒体を含むコンピュータプログラム製品に関する。
【背景技術】
【０００２】
ビデオは、シーン又は展開中のイベントを撮像する効果的な方法である。誕生日パーティ、結婚式、旅行及びスポーツイベントの際にビデオが撮像されることが多い。静止画像と異なり、ビデオ画像は、特定の自然な表情、人間の交流及び人間の動作（例えば、演技、演奏活動、スポーツ活動）等の展開中の構造化されていないイベントを撮像するという利点を有する。多くの場合、ビデオハイライトを生成するためにビデオシーケンスのセグメントを選択すること、あるいは、サムネイル画像の形態で表示する（例えば、複数のサムネイル画像を組み合わせてアニメーションＧＩＦにする）ために又は選択したフレームを印刷本のコンテンツとして使用するために、一連のビデオフレームから個々のフレームを選択することが望ましい。更に、これらの出力を自動的に選択することが望ましい。
【０００３】
カメラ及び携帯電話等のパーソナル電子機器の需要及び入手可能性が増すにつれて、益々多くのビデオデータが撮像され且つ格納されている。ビデオは、印刷又は表示するために選択される候補であるビデオシーケンスのフレーム数が多いため、問題が生じる。１０分間のビデオは、１８，０００個のフレームを有する場合がある。
【０００４】
フレームを選択するために一般に使われる方法は、ユーザが多くのビデオシーケンスを選択し、選択されたビデオシーケンスを処理して印刷又は表示用のフレーム又はビデオシーケンスを選択するように選択システムに要求することである。一例としては、ユーザが特定の年に撮像されたビデオシーケンスのセットを提供し、選択されたビデオシーケンスから選択されたフレームで構成されるその年のフォトブックを要求することである。ユーザは、選択システムが時間的に適切に動作することを期待する。例えばユーザは、選択システムが１時間の長さのビデオシーケンスのセットを１０分以内に処理できることを期待する場合がある。処理がパーソナルコンピュータ、特にカメラ又は他の移動装置等の装置上で実行される場合、そのような期待は課題を提示する。
【０００５】
選択において重み付けが高い所望の動作を検出するために機械学習アルゴリズムを使用することは、性能コストを増大させる。機械学習アルゴリズム、特にディープニューラルネットワークは、大量の計算を伴い、実行するのに相対的に長い時間がかかる。これは、処理にとって更なる負担である。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、既存の構成の１つ以上の欠点を実質的に克服し又は少なくとも改善することである。
【課題を解決するための手段】
【０００７】
本発明の一態様は、ビデオから短期間動作（short duration action）を撮像したフレームを選択する方法であって、前記ビデオのフレームシーケンスを受け取ることと、前記ビデオフレームのシーケンスから第１の複数のフレームのうちの１つに撮像された所定の動作を検出することで前記フレームシーケンス内の基準フレームを判定することと、ここで、前記第１の複数のフレームは、前記所定の動作の継続時間に従って判定される第１のサンプリングレートで前記フレームシーケンスからサンプリングされるものである；前記フレームシーケンスから第２の複数のフレームを選択することと、ここで、前記第２の複数のフレームは前記シーケンスにおける前記基準フレームに関連する場所を有し、第２のサンプリングレートで選択されたものである；前記第２のサンプリングレートは前記第１のサンプリングレートより高く、且つ、前記短期間動作の継続期間に基づいて判定されるものである；前記短期間動作を撮像した前記フレームを前記第２の複数のフレームから選択することとを備える。
【０００８】
別の態様において、方法は、前記ビデオデータシーケンスに対する処理バジェット及び複数の所定の動作を受け取ることと、ここで、前記動作の各々は、対応する第１のサンプリングレートを有する；前記処理バジェットと前記フレームシーケンスの処理時間の推定値との比較に従って、前記複数の所定の動作から１つ以上の所定の動作を選択することと、ここで、前記処理時間は、選択される１つ以上の所定の動作に対応する第１のサンプリングレートを使用して判定される；を更に備える。
【０００９】
別の態様において、方法は、前記基準フレーム内の前記所定の動作を、複数の所定の動作のうちの１つとマッチングすることと、ここで、所定の動作の各々は、探索方向及び第２のサンプリングレートを有する；前記マッチングした所定の動作の前記対応する探索方向及び前記第２のサンプリングレートを使用して、前記ビデオフレームシーケンスから前記第２の複数のフレームを選択することとを更に備える。
【００１０】
別の態様において、前記基準フレーム、及び、前記短期間動作を撮像した前記フレームは、異なる閾値を使用して分類される、ここで、前記基準フレームに対する前記閾値は、前記短期間動作を撮像した前記フレームに対する前記閾値より低い；前記基準フレームを判定することは、前記所定の動作の検出に関連する信頼度スコアが閾値を満たすかを判定することを含む。
【００１１】
別の態様において、前記基準フレームに隣接するフレームは、前記基準フレームの分類を判定するために使用され、前記基準フレームに対する分類マッチング閾値は、前記隣接するフレームに対する分類に従って変化する。
【００１２】
別の態様において、前記短期間動作を撮像した前記フレームを選択することは、画質に基づいて及び重複を回避するために、前記第２の複数のフレームに優先順位を付けること及びそれらをフィルタリングすることを含む。
【００１３】
別の態様において、前記基準フレームは第１の畳み込みニューラルネットワークを使用して位置を特定され、前記短期間動作を撮像した前記フレームは第２の畳み込みニューラルネットワークを使用して選択される。ここで、前記第２の畳み込みニューラルネットワークは前記第１の畳み込みニューラルネットワークより高い精度を有する。
【００１４】
別の態様において、前記基準フレーム及び前記短期間動作を撮像した前記フレームはそれぞれ、第１の畳み込みニューラルネットワーク及び第２の畳み込みニューラルネットワークの入力次元とマッチングする解像度で復号される。
【００１５】
別の態様において、前記第２のサンプリングレートは、基準フレームにおいて検出された所定の動作の種類に基づいて判定される。
【００１６】
別の態様において、前記基準フレームを判定するステップ、前記第２の複数のフレームを選択するステップ及び前記短期間動作を撮像した前記フレームを選択するステップは、前記ビデオの撮像時にリアルタイムで実現される。
【００１７】
別の態様において、方法は、電子機器のインタフェースを介して前記ビデオに対する所要の処理時間を受け取ることを更に備える。ここで、前記第１のサンプリングレートは、前記所定の動作の前記継続時間及び前記所要の処理時間に従って判定される。
【００１８】
別の態様において、方法は、前記ビデオを再生する電子機器のインタフェースとユーザが対話している場合に、前記ビデオの長さに対する割合である前記ビデオに対する所要の処理時間を判定することを更に備える。
【００１９】
別の態様において、方法は、当該方法の動作により検出される可能性が低い短期間動作を判定することと、前記ビデオを撮像又は再生する電子機器上に前記短期間動作が検出される可能性が低いという指示を表示することを更に備える。
【００２０】
別の態様において、前記方法の動作により検出される可能性が低い短期間動作は、処理バジェットと短期間動作に関連する所定の動作に対応する第１のサンプリングレートとに基づいて判定される。
【００２１】
別の態様において、方法は、ビデオシーケンスに関連するテーマの指示を受け取ることを更に備える。ここで第１のサンプリングレートは、テーマに関連する所定の動作の継続時間に基づいて判定される。
【００２２】
別の態様において、テーマは、方法を実行する電子機器のインタフェースにおけるユーザ入力により受け取られる。
【００２３】
別の態様において、テーマは、ビデオを分類器に入力することにより判定される。
【００２４】
本発明の別の態様は、ビデオから短期間動作を撮像したフレームを選択する方法を実現するプログラムを格納した非一時的コンピュータ可読媒体を提供する。このプログラムは、前記ビデオのフレームシーケンスを受け取るためのコードと、前記ビデオフレームのシーケンスから第１の複数のフレームのうちの１つに撮像された所定の動作を検出することで前記フレームシーケンス内の基準フレームを判定するためのコードと、ここで、前記第１の複数のフレームは、前記所定の動作の継続時間に従って判定される第１のサンプリングレートで前記フレームシーケンスからサンプリングされるものである；前記フレームシーケンスから第２の複数のフレームを選択するためのコードと、ここで、前記第２の複数のフレームは前記シーケンスにおける前記基準フレームに関連する場所を有し、第２のサンプリングレートで選択されたものである；前記第２のサンプリングレートは前記第１のサンプリングレートより高く、且つ、前記短期間動作の継続期間に基づいて判定されるものである；前記短期間動作を撮像した前記フレームを前記第２の複数のフレームから選択するためのコードとを備える。
【００２５】
本発明の別の態様は、撮像装置を提供する。この撮像装置は、ビデオのフレームシーケンスを撮像し、ソフトウェアプログラムをグラフィックスプロセッシングユニット上で実行するように構成される。このプログラムは、ビデオのフレームシーケンスを受け取ることと、前記フレームシーケンスから第１の複数のフレームのうちの１つに撮像された所定の動作を検出することで前記フレームシーケンス内の基準フレームを判定することと、ここで、前記第１の複数のフレームは、前記所定の動作の継続時間に従って判定される第１のサンプリングレートで前記フレームシーケンスからサンプリングされるものである；前記フレームシーケンスから第２の複数のフレームを選択することと、ここで、前記第２の複数のフレームは前記シーケンスにおける前記基準フレームに関連する場所を有し、第２のサンプリングレートで選択されたものである；前記第２のサンプリングレートは前記第１のサンプリングレートより高く、且つ、前記短期間動作の継続期間に基づいて判定されるものである；前記短期間動作を撮像した前記フレームを前記第２の複数のフレームから選択することを有する方法を実行するように構成される。
【００２６】
本発明の別の態様は、プロセッサと、前記プロセッサに指示するソフトウェアプログラムを格納するメモリとを有するシステムを提供する。ここで、前記プログラムは、ビデオのフレームシーケンスを受け取ることと、前記フレームシーケンスから第１の複数のフレームのうちの１つに撮像された所定の動作を検出することで前記フレームシーケンス内の基準フレームを判定することと、ここで、前記第１の複数のフレームは、前記所定の動作の継続時間に従って判定される第１のサンプリングレートで前記フレームシーケンスからサンプリングされるものである；前記フレームシーケンスから第２の複数のフレームを選択することと、ここで、前記第２の複数のフレームは前記シーケンスにおける前記基準フレームに関連する場所を有し、第２のサンプリングレートで選択されたものである；前記第２のサンプリングレートは前記第１のサンプリングレートより高く、且つ、前記短期間動作の継続期間に基づいて判定されるものである；前記短期間動作を撮像した前記フレームを前記第２の複数のフレームから選択することの工程を有する方法を実行させるように構成される。
【００２７】
他の態様が更に開示される。
【図面の簡単な説明】
【００２８】
以下の図面を参照して、本発明の１つ以上の実施形態を以下に説明する。
【図１Ａ】図１Ａは、静止画像及びビデオシーケンスの双方を撮影できる撮像システムを示す図である。
【図１Ｂ】図１Ｂは、図１Ａの撮像システムの制御部を概略的に示すブロック図である。
【図１Ｃ】図１Ｃは、グラフィックスプロセッシングユニットを含む図１Ｂの制御部を示す図である。
【図２Ａ】図２Ａは、内容を分類するためにフレームを処理する検出／分類アルゴリズムを示す図である。
【図２Ｂ】図２Ｂは、所定の動作に短期間動作が後続するシーケンスを示す図である。
【図３】図３は、ビデオから少なくとも１つのフレームを選択する方法を概略的に示すフローチャートである。
【図４】図４は、バッチ処理のためにセグメントに分割されたビデオのフレームの一例を示す図である。
【図５Ａ】、
【図５Ｂ】図５Ａ，図５Ｂはビデオフレームのサンプリング及びサンプルの処理の例を示す図である。
【図６Ａ】、
【図６Ｂ】図６Ａ，図６Ｂは、方法３００において実現される２つのサンプリングパスにおいて異なる検出／分類アルゴリズムを使用する一例を示す図である。
【図７】図７は、図３の方法において使用される処理パラメータを判定する方法を概略的に示すフローチャートである。
【発明を実施するための形態】
【００２９】
いずれか１つ以上の添付の図面において同一の図中符号を有するステップ及び／又は特徴を参照する場合、特に指示のない限り、それらのステップ及び／又は特徴は、説明の便宜上、同一の機能又は動作を有する。
【００３０】
説明される方法は、所望の動作を含むフレームをビデオシーケンスから選択することに関する。適切なフレームの選択は、ビデオハイライトの選択及びビデオライブラリの分類等に使用することができる。
【００３１】
図１Ａは、説明される方法を実施できる静止画像及びビデオシーケンスの双方を撮影できる撮像システム１００の断面図である。一般に、撮像システム１００は、デジタルビデオカメラ（カムコーダとも呼ばれる）等の撮像装置、あるいは例えばスマートフォン又はタブレット装置等の一体型カメラを有するパーソナル電子機器であってもよい。しかし、説明される方法は、デスクトップコンピュータ、サーバコンピュータ、並びに非常に大きい処理リソースを有する他のそのような装置等の、より高レベルの装置上で実行されてもよい。
【００３２】
以下、撮像システム１００を「カメラシステム１００」、「カメラ１００」又は「ビデオ撮像装置１００」と呼ぶ。また以下の説明において、用語「画像」及び「フレーム」も適宜切り替えて使用する。
【００３３】
図１Ａに示すように、カメラシステム１００は、シーン１０１から受光してセンサ１２１上に画像を形成する光学系１０２を備える。センサ１２１は、光学系により形成された画像の強度を位置の関数として測定する画素センサの２次元アレイを備える。ユーザ対話とセンサ１２１からの画像データの読み出し、処理及び格納の全ての態様とを含むカメラ１００の動作は、専用コンピュータシステムを備える主制御部１２２により調整される。システム１００を以下で詳細に考察する。ユーザは、焦点調節及び画像データの撮像を開始するために使用されるシャッタボタン１２８と、他の汎用ボタン及び専用ボタン１２４、１２５、１２６とを含むボタンのセットを介して制御部１２２に意思を伝達できる。ボタン１２４〜１２６は、フラッシュ操作等の特定のカメラ機能の直接制御を提供してもよく、あるいは表示装置１２３上に提示されたグラフィカルユーザインタフェースとの対話を支援してもよい。表示装置１２３は、ユーザ対話を更に容易にするためにタッチスクリーン機能を更に有してもよい。ボタン及び制御装置を使用することにより、カメラ１００の挙動を制御又は変更することができる。通常、必要な露出レベルを達成する時のシャッタ速度又はアパーチャサイズの優先度、測光に使用される領域、フラッシュの使用、ＩＳＯ感度、自動焦点調節のオプション、その他の多くの写真制御機能等の撮像設定を制御することができる。更に、色バランス又は圧縮品質等の処理オプションを制御することができる。ディスプレイ１２３は通常、撮像した画像又はビデオデータを確認するためにも使用される。静止画像カメラがシーンのライブプレビューを提供するためにディスプレイ１２３を使用することにより、静止画像の撮像前及びビデオの撮像中に構図するための光学ビューファインダ１２７の代替となるものを提供することは一般的である。
【００３４】
光学系１０２は、センサ１２１に形成された画像に対するある範囲の倍率レベル及び焦点距離を達成するためにレンズ制御部１１８の制御下で光軸１０３に平行な線１３１に沿って互いに対して移動可能なレンズ群１１０、１１２、１１３及び１１７の構成を備える。また、レンズ制御部１１８は、光学系１０２によりセンサ１２１上に形成された画像の位置をシフトするために、１つ以上の動きセンサ１１５、１１６又は制御部１２２からの入力に応答して、機構１１１を制御して光軸１０３に対して垂直な平面内の何らかの線１３２上での補正レンズ群１１２の位置を変更してもよい。通常、補正光学要素１１２は、手ぶれにより生じるようなカメラ１００の小さな動きに対してセンサ１２１上の画像の位置を補正することにより光学像の安定化を達成するために使用される。光学系１０２は、光学系１０２を通る光の通路を制限するための調節可能なアパーチャ１１４及びシャッタ機構１２０を更に備えてもよい。アパーチャ及びシャッタの双方は通常は機械装置として実現されるが、電気制御信号の制御下で光学的特性を変更できる液晶等の材料を使用して構成されてもよい。そのような電気光学装置は、アパーチャの形状及び不透過度の双方を制御部１２２の制御下で連続的に変更できるという利点を有する。
【００３５】
図１Ｂは、図１Ａの制御部１２２を概略的に示すブロック図であり、制御部１２２と通信するカメラ１００の他の構成要素を機能ブロックとして示す。特に、画像センサ１２１、レンズ制御部１１８及びジャイロセンサ１９９は、それらの物理的機構又は画像形成処理を参照せずに示され、特定の事前に定義されたタスクを実行し、データ及び制御信号を渡すことができる装置としてのみ扱われる。
【００３６】
図１Ｂは、薄暗い場所での撮像中に使用できるストロボの動作に対する責任を有するフラッシュ制御部１９７を更に示す。補助センサ１９６は、撮像中にカメラ１００が縦向きか又は横向きかを検出する姿勢センサと、周囲の照明の色の検出又は自動焦点調節等の補助を行う他のセンサとを含んでもよい。補助センサ１９６は制御部１２２の一部として示されるが、いくつかの実現例において、補助センサ１９６はカメラシステム１００内の別個の構成要素として実現されてもよい。ジャイロセンサ１９９は、カメラ１００の角運動を検出する。ジャイロセンサ１９９は、ピッチ運動及びヨー運動の角運動を報告してもよい。ジャイロセンサ１９９は、図１Ａに示すセンサ１１５及び／又は１１６の一部を形成してもよく、あるいはジャイロセンサ１９９は別個のセンサであってもよい。ロール軸におけるカメラ１００の角度位置を検出するために、姿勢センサ（不図示）が使用されてもよい。姿勢センサ情報はジャイロセンサ１９９から導出されてもよく、あるいは姿勢センサは別個のセンサであってもよい。姿勢センサは、カメラの姿勢を９０°刻みで報告してもよい。
【００３７】
制御部１２２は、プログラムコードを実行する処理装置（又はプロセッサ）１５０と、読み出し専用メモリ（ＲＯＭ）１６０及びランダムアクセスメモリ（ＲＡＭ）１７０と、不揮発性大容量データ記憶装置１９１とを備える。制御部１２２は、専用輝度モジュール１８０を更に備えてもよい。更に、プリンタ、ディスプレイ及び汎用コンピュータ等の他の電子機器と通信のために、少なくとも１つの通信インタフェース（Ｉ／Ｆ）１９２が提供される。通信インタフェースの例は、ＵＳＢ、ＩＥＥＥ１３９４、ＨＤＭＩ（登録商標）及びイーサネット（登録商標）を含む。オーディオインタフェース１９３は、デジタルオーディオデータの取り込み及び再生のための１つ以上のマイク及びスピーカを備える。制御部１２２をディスプレイ１２３及びカメラ１００の本体上に存在する制御装置とインタフェースさせるために、ディスプレイ制御部１９４及びボタンインタフェース１９５が更に提供される。制御部１２２の構成要素は、データバス１８１及び制御バス１８２により相互接続される。
【００３８】
撮像モードにおいて、制御部１２２は、画像センサ１２１及びオーディオインタフェース１９３からデータを読み出し、当該データを操作して、不揮発性大容量データ記憶装置１９１に格納できるシーンのデジタル表現を形成するように動作する。静止画像カメラの場合、画像データは、ＪＰＥＧ又はＴＩＦＦ等の標準的な画像ファイル形式を使用して格納されてもよく、あるいは画像データは、生データ形式から標準的な画像ファイル形式への変換を提供する無料ソフトウェア製品と共に使用するように設計される独自の生データ形式を使用して符号化されてもよい。そのようなソフトウェアは通常、汎用コンピュータ上で実行する。ビデオカメラの場合、撮像されたビデオを含む画像シーケンスは、ＤＶ、ＭＰＥＧ、Ｈ．２６４等の標準形式を使用して格納される。これらの標準形式は、コンテナファイルと呼ばれるＡＶＩ又はＱｕｉｃｋｔｉｍｅ等のファイルに編成されるものもあるが、テープストレージで一般的に使用されるＤＶ等の他の形式はデータストリームとして書き込まれる。不揮発性大容量データ記憶装置１９１は、カメラシステム１００により撮像された画像又はビデオデータを格納するために使用され、コンパクトフラッシュ（登録商標）（ＣＦ）又はセキュアデジタル（ＳＤ）カード、メモリスティック、マルチメディアカード、ｍｉｎｉＳＤ又はｍｉｃｒｏＳＤカード等の取り外し可能フラッシュメモリ、書き込み可能なＣＤ、ＤＶＤ、Ｂｌｕ‐ｒａｙ（登録商標）ディスク等の光記憶媒体、あるいは、磁気テープ又はマイクロドライブ等の超小径ＨＤＤを含むハードディスクドライブ（ＨＤＤ）等の磁気媒体を含むがそれらに限定されない多くの実現例を有する。大容量記憶装置の選択は、特定のカメラシステム１００の容量、速度、有用性、電力及び物理的サイズの要件に依存する。
【００３９】
シーンの輝度情報は、輝度モジュール１８０により提供される。輝度モジュール１８０は画像センサ１２１から情報を取得してもよく、あるいは輝度モジュール１８０は別個のセンサであってもよい。輝度モジュール１８０は、ビデオシーケンス又は静止画像の撮像時に正しい露出を判定するように構成される。輝度モジュール１８０は通常、シーンの輝度を表す単一の輝度値を記録する。これは、多くの場合、写真業界標準のＡＰＥＸシステムにより定義されるように判定される。輝度値は、撮像した静止画像又はビデオシーケンスと共にメタデータとして格納されてもよい。カメラシステム１００においてジャイロセンサ１９９及び姿勢センサが使用される場合、ジャイロセンサ１９９からのカメラ動き情報及び姿勢センサからの姿勢情報が静止画像又はビデオシーケンスと共にメタデータとして更に格納されてもよい。ビデオシーケンスが撮像されている場合、メタデータはビデオシーケンス内のフレームに関連付けられる。従って、ビデオシーケンス内のフレーム毎に、当該フレームに特有のメタデータにシーン輝度情報及びカメラ動き情報が格納される。
【００４０】
制御部１２２は、例えば以下に説明するシステムプログラムコードの一部として、センサ１２１に形成された画像内の顔を検出するように構成された顔検出モジュールを更に含んでもよい。
【００４１】
再生モード又はプレビューモードにおいて、制御部１２２は、大容量記憶装置１９１からデータを読み出し、ディスプレイ１９４及びオーディオインタフェース１９３を使用して当該データを提示又は再生するように動作する。
【００４２】
プロセッサ１５０は、接続されたメモリ１６０及び１７０の一方又は双方に格納されたプログラムを実行できる。カメラシステム１００が最初に起動されると、ＲＯＭメモリ１６０に常駐するシステムプログラムコード１６１が実行される。ＲＯＭ１６０に恒久的に格納されるシステムプログラムをファームウェアと呼ぶ場合がある。プロセッサ１５０によるファームウェアの実行は、プロセッサ管理、メモリ管理、装置管理、ストレージ管理及びユーザインタフェースを含む種々の高次機能を実行する。
【００４３】
システムプログラムコード１６１は、例えば以下に説明する記憶装置を含むコンピュータ可読媒体に格納されてもよい。システムプログラムコード１６１は、コンピュータ可読媒体からシステム１００にロードされ、システム１００により実行される。そのようなソフトウェア又はコンピュータプログラムが記録されたコンピュータ可読媒体はコンピュータプログラム製品である。
【００４４】
場合によっては、システムプログラムコード１６１は、１つ以上のＣＤ−ＲＯＭ上に符号化され、対応するドライブを介して読み出されてユーザに供給されてもよく、あるいはユーザによりネットワークから読み出されてもよい。更に、ソフトウェアは、他のコンピュータ可読媒体からシステム１００にロードすることもできる。コンピュータ可読記憶媒体は、記録された命令及び／又はデータを実行及び／又は処理のためにシステム１００に提供する何らかの非一時的有形記憶媒体を示す。そのような記憶媒体の例は、システム１００の内部にあるか外部にあるかに関係なく、フロッピディスク、磁気テープ、ＣＤ−ＲＯＭ、ＤＶＤ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ハードディスクドライブ、ＲＯＭ又は集積回路、ＵＳＢメモリ、光磁気ディスク、あるいはＰＣＭＣＩＡカード等のコンピュータ可読カードを含む。システム１００へのソフトウェア、アプリケーションプログラム、命令及び／又はデータの提供に同様に関係してもよい一時的又は非有形のコンピュータ可読伝送媒体の例は、無線又は赤外線伝送チャネル、別のコンピュータ又はネットワーク装置へのネットワーク接続、並びに電子メールの送信及びウェブサイト等に記録された情報を含むインターネット又はイントラネットを含む。プロセッサ１５０は、制御部（ＣＵ）１５１と、演算論理部（ＡＬＵ）１５２と、デジタル信号処理エンジン（ＤＳＰ）１５３と、通常はアトミックデータ要素１５６、１５７を含むレジスタ１５４のセットを含むローカル又は内部メモリと、内部バッファ又はキャッシュメモリ１５５とを含む多くの機能モジュールを含む。１つ以上の内部バス１５９がこれらの機能モジュールを相互接続する。プロセッサ１５０は通常、システムデータバス１８１及び制御バス１８２を介して外部装置と通信するための１つ以上のインタフェース１５８を更に有する。
【００４５】
システムプログラム１６１は、条件付き分岐命令及び条件付きループ命令を含んでもよい一連の命令１６２〜１６３を含む。プログラム１６１は、プログラム１６１の実行時に使用されるデータを更に含んでもよい。プログラム１６１の実行時に使用されるデータは、命令の一部として格納されてもよく、あるいはＲＯＭ１６０内の別個の場所１６４又はＲＡＭ１７０に格納されてもよい。
【００４６】
一般に、プロセッサ１５０は、そこで実行される命令のセットを与えられる。プロセッサ１５０に与えられる命令のセットは、特定のタスクを実行するか又はカメラシステム１００において発生する特定のイベントを処理するブロックに編成されてもよい。通常、システムプログラム１６１はイベントを待ち、その後、当該イベントに関連するコードブロックを実行する。イベントに関連するコードブロックの実行は、後にプロセッサ１５０上で実行するプログラムと並列に実行するレンズ制御部１１８等のカメラシステム１００内の独立したプロセッサ上で実行する別個の実行スレッドを実行することを含んでもよい。イベントは、ボタンインタフェース１９５により検出されるユーザからの入力に応答してトリガされてもよい。イベントは更に、カメラシステム１００内の他のセンサ及びインタフェースに応答してトリガされてもよい。
【００４７】
命令のセットの実行は、数値変数の読み出し及び変更を必要とする場合がある。そのような数値変数はＲＡＭ１７０に格納される。以下に開示する方法は、メモリ１７０内の既知の場所１７２、１７３に格納される入力変数１７１を使用してもよい。入力変数が処理されて出力変数１７７が生成され、出力変数１７７はメモリ１７０内の既知の位置１７８、１７９に格納される。中間変数１７４は、メモリ１７０の場所１７５、１７６内の更なる記憶場所に格納されてもよい。あるいは、いくつかの中間変数は、プロセッサ１５０のレジスタ１５４のみに存在してもよい。
【００４８】
一連の命令の実行は、フェッチ実行サイクルを繰り返し適用することにより、プロセッサ１５０において達成される。プロセッサ１５０の制御部１５１は、実行される次の命令のメモリ１６０におけるアドレスを含むプログラムカウンタと呼ばれるレジスタを保持する。フェッチ実行サイクルの最初に、プログラムカウンタにより指標を付与されたメモリアドレスの内容が制御部１５１にロードされる。このようにしてロードされた命令は、プロセッサ１５０の次の動作を制御し、例えばデータをメモリ１７０からプロセッサのレジスタにロードし、レジスタの内容を別のレジスタの内容と算術的に組み合わせ、レジスタの内容を別のレジスタに格納された場所に書き込む。フェッチ実行サイクルの最後に、プログラムカウンタはプログラム１６１内の次の命令を指すように更新される。著従前に実行された命令に依存して、プログラムカウンタを更新することは、プログラムカウンタに含まれるアドレスを増分すること又は分岐動作を達成するためにプログラムカウンタに新しいアドレスをロードすることを含んでもよい。
【００４９】
フローチャートの処理における各ステップ又はサブ処理は、プログラム１６１の１つ以上のセグメントに関連し、プロセッサ１５０においてフェッチ実行サイクルを繰り返し実行することにより又はカメラシステム１００内の他の独立したプロセッサブロックの同様のプログラム動作により実行される。
【００５０】
近年、ビデオフレーム及びビデオハイライトの選択は、ビデオフレーム内の特定の物体及び動作を識別できる機械学習アルゴリズムの使用の増加と共に向上した。所望の動作がビデオフレームにおいて検出される場合、フレーム又はフレーム及び周囲のフレームが選択の候補となる。他の要因もフレーム又はビデオハイライトの選択に寄与し得る。例えば、フレームのぶれ及び識別された顔の双方がフレームのフィルタリング又は選択に使用される。本開示の文脈において、用語「フレーム選択」は、「フレーム選択」及び「ハイライト選択」の双方に関する。更に、本明細書中、選択されるフレームを「撮像フレーム」と呼ぶ場合がある。
【００５１】
動作認識において普及している機械学習に基づくアルゴリズムは、ディープニューラルネットワークを含み、特に、高い検出精度を有することが示されている畳み込みニューラルネットワーク（ＣＮＮ）を含む。畳み込みニューラルネットワークは、一連の畳み込み層からなるモデルアーキテクチャを有する。各畳み込み層は、色、線、形状、テクスチャ等の入力画像の特定の視覚的特徴を識別できる特徴マップを生成するためのフィルタとして機能するように設計される。アーキテクチャ内の多くのパラメータを有する更なる層は、特徴の組み合わせを検出の対象である人間、犬等の物体クラス又は蹴る等の動作姿勢に分類するように訓練される。異なる畳み込みニューラルネットワークは、アーキテクチャの形状及びサイズが異なる。一般に、アーキテクチャが大きいほど、高い分類精度が達成されるが、処理時間及び計算リソースが増大する。また、同じ種類の畳み込みニューラルネットワークでは、最初の畳み込み層の次元とマッチングするように異なる入力画像解像度を用いることができる。アーキテクチャのサイズの効果と同様に、入力画像の解像度が高いほど、高い分類精度が達成されるが、余分な画素のため、更に多くのデータを処理することになる。畳み込みニューラルネットワークのサイズはパラメータの数が数百〜１億個以上と様々であることができるため、特定のアプリケーションに対する精度と計算要件とのバランスを適切にとって畳み込みニューラルネットワークを設計することが重要である。それに加えて、説明される方法は更に、精度に悪影響を及ぼすことなく計算要件を減少させる。
【００５２】
図２Ａは、野球の準備姿勢の打者２１１を含むフレーム２１０を処理するニューラルネットワークに基づくアルゴリズム２２０を示す。アルゴリズム２２０は動作（action）を検出し、フレーム動作分類２３０を出力する。図２Ａの例では、フレーム動作分類２３０は、「野球の打撃準備」分類とマッチングする。ニューラルネットワークに基づくアルゴリズム２２０は更に、本明細書において説明する方法により使用される分類信頼度図（不図示）を提供する。アルゴリズムは大量の計算も必要とする。小さいコンピューティング環境で動作することを意図しているため他の畳み込みニューラルネットワークモデルと比較して相対的に小さい「Ｍｏｂｉｌｅｎｅｔ」畳み込みニューラルネットワークは、単一の画像を処理するために５億個を超える乗算加算を必要とする。畳み込みニューラルネットワークアルゴリズムに対して最適化されていないシステム（例えば、カメラ又はパーソナル電子機器）では、乗算加算の数はかなりの時間／処理負荷を表す。
【００５３】
畳み込みニューラルネットワークアルゴリズムは、サポートするプロセッサ及びモジュールを有するハードウェア上で実行する場合に非常に有益である。ｎＶｉｄｉａ  ＧｅＦｏｒｃｅ  ＧＴＸ１０８０Ｔｉ等のグラフィックスプロセッシングユニット（ＧＰＵ）カードは、畳み込みニューラルネットワークの処理に適しており、カードを有さない同様のシステムと比較して最大１０倍の速度向上が可能である。図１Ｃは制御部１２２Ｃを示す。制御部１２２Ｃは、図１Ｂの制御部１２２と同様の方法で、バス１８１及び１８２を介して画像センサ１２１、レンズ制御部１１８及びジャイロセンサ１９９と通信及び対話する。制御部１２２Ｃは、プロセッサ１５０、ＲＯＭ１６０、ＲＡＭ１７０、輝度モジュール１８０及び構成要素１９１〜１９６を備えるという点で制御部１２２と同様であり、それらの各々は図１Ｂに関して説明したのと同様に動作する。しかし、制御部１２２ＣはＧＰＵカード１５０Ｇを更に含む。いくつかの実現例において、ＧＰＵカード１５０Ｇは、プロセッサ１５０の一部を形成することができる。移動装置の場合、移動装置でも性能の向上を達成するために、畳み込みニューラルネットワークの処理を高速化するための特定用途向け集積回路（ＡＳＩＣ）コプロセッサが例えばＡｐｐｌｅ社のＮＥＵＲＡＬ  ＥＮＧＩＮＥ、ＱＵＡＬＣＯＭＭ社のＨＥＸＡＧＯＮ６８５ＤＳＰコア等の装置に組み込まれることが多い。
【００５４】
非機械学習技術を使用して動作を検出及び分類することもでき、本明細書において説明する方法は、機械学習技術以外のアルゴリズムが使用される場合にも同様に適用される。
【００５５】
本明細書中、用語「アルゴリズムネットワーク」は、説明される方法で動作を検出及び分類するために使用される何らかのアルゴリズムに関連して使用される。アルゴリズムは、畳み込みニューラルネットワークであってもよく、あるいは、検出された手足の位置及び動きに基づいて動作を分類するための人間の姿勢推定用アルゴリズム等の別の種類のアルゴリズムであってもよい。
【００５６】
ビデオを処理する場合、畳み込みニューラルネットワークの処理時間がフレーム当たりの処理バジェットを超えることは一般的である。例えば、通常は毎秒３０フレーム（ｆｐｓ）の処理であるビデオのリアルタイム処理というアプリケーション要件がある場合、最大１５ｆｐｓを処理できる畳み込みニューラルネットワークアルゴリズムは要件を満たすことができない。そのため、「リアルタイム」処理は、入力データが到着するのと少なくとも同じフレームレートで入力データを処理することを示す。例えばビデオシーケンスが毎秒３０フレームで記録される場合、「リアルタイム」処理は、ビデオデータの撮像時に少なくとも毎秒３０フレームの速度で処理することを必要とする。多くのアプリケーションはリアルタイムより数倍速い処理速度を必要とし、毎秒数百フレーム（ｆｐｓ）を達成するという処理フレームレートを必要とする場合がある。リアルタイムより速い速度で処理する状況では、フレームのサブセットのみが処理されるようにサンプリングが必要とされ、精度への影響はサンプリングアルゴリズムに大きく依存する。本明細書において説明する方法は、動作検出アルゴリズムと両立し得るサンプリングシステムを提供する。
【００５７】
ビデオの一部分をフレーム選択に対するフレームとして望ましいものにするビデオに撮像され得る短期間動作(short duration action)の多くの例がある。本開示の文脈では、短期間動作は、通常は長さが１秒未満又は数フレームほどである。短期間動作の例は、スポーツにおいてボールを打つこと、スポーツにおいてボールを蹴ること、誕生日ケーキのろうそくを吹き消すこと、結婚式においてケーキを切ることを含むことができるが、それらに限定されない。多くの望ましい動作は、機械学習アルゴリズムにより同様に検出され得る「所定の動作」と呼ばれる長い準備動作が先行する場合がある。例えば、図２Ｂはシーケンス２８０を示す。図２Ｂに示すように、野球のボールを打つ場合、野球打者２５０は準備スタンス及び結果として生じるスタンス２７０をとる。打撃動作を「短期間動作」と呼ぶ。打者が準備姿勢をしている時間の長さをフレーム範囲２４０と示し、打者がボールを打つ過程にいる時間の長さを範囲２６０と示す。準備の長さ（２４０）は、ボールを打つのにかかる時間の長さ（２６０）より長い。
【００５８】
別の例はサッカーでペナルティキックを行うための準備であり、これは助走、キックの短い瞬間及びゴールキーパーが跳びつく短い瞬間を含む。同様のスポーツの例は、ゴルフのショットのための準備（所定の動作）及び短時間のショット（短期間動作）、テニスにおけるショットのためのストローク準備（所定の動作）及び短時間のショット自体（短期間動作）を含む。他のスポーツ以外の例は、新郎新婦がウエディングケーキの周りに集まる準備段階（所定の動作）及び短時間のケーキカット（短期間動作）、並びに誕生日ケーキの周りに集まる準備（所定の動作）及び短時間のろうそくの吹き消し（短期間動作）を含む。用語「所定の動作の種類」は、検出された所定の動作を示すために使用される。例えば、「ゴルフのショット準備」は所定の動作の種類である。
【００５９】
図３は、一連のビデオフレーム内の所望の動作を示す少なくとも１つのフレームを選択する方法３００を示す。所望の動作は短期間動作に関する。方法３００は、ビデオの撮像時にリアルタイムで又はビデオが撮像された後に実現されてもよい。いくつかの実現例において、方法３００は、ユーザコマンドに応答して実現されてもよく、あるいはユーザコマンドを予想して前処理として実現されてもよい。
【００６０】
方法３００は、短期間動作を含むフレームの検出に基づいて、ビデオからフレームを判定又は選択する。方法３００は、重要動作検出に適したマルチパスサンプリングを使用する。ビデオの所望のフレームを選択する際には、重要動作を用いる以外の他のステップが存在してもよい。一例は、重要な人物又は被写体の顔を有するフレームを選択することを含む。重要な被写体は、例えばユーザのビデオの集合に頻繁に登場する人物であってもよく、例えば移動装置を使用して人物の顔を登録することによりグラフィカルユーザインタフェースを使用してユーザによって選択された人物であってもよい。重要な被写体を含むフレームに関するステップは方法３００に示されない。更に、所望のフレーム（撮像フレーム）を選択する際の他のステップは、例えば被写体ぶれを有するフレームである欠陥のあるフレームをフィルタリングすることを含む。重複するフレームをフィルタリングすることもできる。重複するフレーム又はぶれを有するフレームを除去するためのステップは既知である。
【００６１】
方法３００の動作を説明する前に、図５Ａを使用して方法３００のいくつかの概念を紹介する。図５Ａ及び図５Ｂは、方法３００のステップ３２５及びステップ３３０に関連して以下で更に詳細に説明する。図５Ａにおいて、ビデオのフレームシーケンス５１０は、所定の動作（例えば、野球の打撃準備）を含むフレームのサブセット又はセグメント５２０と、短期間動作（例えば野球の打撃）を含むフレームのセグメント５２５とを含む。他のフレーム５３０は、所定の動作及び短期間動作を含まない。矢印５４０の範囲は、第１のサンプリングレートでサンプリングされた６つのフレームを示す。図５Ａの例において、第１のサンプリングレートでは６ビデオフレーム毎に１つのフレームがサンプリングされる。矢印５５０の範囲は、第１のサンプリングレートより高い第２のサンプリングレートでサンプリングされた２組のサンプリングフレームを示し、各組において２つのフレームがサンプリングされている。図５Ａの例において、第２のサンプリングレートでは２ビデオフレーム毎に１つのフレームがサンプリングされる。
【００６２】
方法３００は、カメラ１００のＲＯＭ１６０に常駐し且つプロセッサ１５０（又は制御部１２２Ｃの場合はＧＰＵ１５０Ｇ）の実行下で制御されるシステムプログラム１６１の１つ以上のソフトウェアコードモジュールとして実現されてもよい。あるいは、方法３００は、入力ビデオシーケンスがデスクトップコンピュータにダウンロードされた後にデスクトップコンピュータ等で実現されてもよい。
【００６３】
方法３００は、処理パラメータ設定ステップ３１０から開始する。ステップ３１０において、ビデオのフレームを受け取る。フレームシーケンスは、カメラ１００によりリアルタイムで撮像されるか又は大容量記憶装置１９１等のメモリから検索されてもよい。他の構成において、例えばカメラ１００がスマートフォンである場合、ビデオフレームは、ネットワークを介してリモート装置から受け取られてもよい。ビデオは、撮像中又は撮像後にカメラ１００のユーザが確認するためにディスプレイ１２３上で再生されてもよい。ステップ３１０は、処理バジェット、コンピューティング環境１２２の能力及びハイライトフレームが選択されるビデオの特徴に基づいて、方法３００により適用される処理パラメータを判定するように動作する。処理バジェットは、ユーザが出力を受け取ることを期待する所要の応答時間に基づいてアプリケーションにより例えば分単位で設定されてもよい。処理時間は、ディスプレイ１２３に表示されたインタフェースと対話するためにボタン１２４〜１２６等の入力装置を使用してユーザにより入力されてもよい。通常、所要の応答時間は適切なフレームを選択するための処理を完了するための時間バジェットであり、応答性のよいユーザ経験及び許容可能な精度を提供するのに十分な短い期間に設定される。説明される構成は、ユーザがアプリケーション１６１と対話している場合の使用例に特に適しており、そのため、例えば１０分間のビデオシーケンスに対して約１分という相対的に速い応答がアプリケーション１６１から期待される。応答時間はビデオの時間に対する割合として設定されてもよい。処理は、ビデオデータの所定の閾値に関連するように制限されてもよい。通常、所要の応答時間は、ビデオシーケンスの継続時間の１０分の１に設定され、例えば２分である所定の閾値を上限とする。あるいは、ユーザは、特定のビデオシーケンス又はビデオシーケンスの集合を処理するために許容される時間を指定するオプションを有することができる。
【００６４】
他のアプリケーションは、撮像したビデオをカメラ１００が待機中に前処理するバックグラウンドタスクとして、所望の動作を含むフレームを選択する処理をスケジューリングしてもよく、そのため、カメラ及び／又はアプリケーションとの対話は検出されない。ビデオデータを前処理するアプリケーションは、過度のバッテリ電力を消費せずに高い精度を達成するために、長い時間バジェットを設定してもよい。移動装置が充電中である場合、更に長い時間バジェットが設定されてもよい。前述したように、方法が実行されるカメラ１００の能力は処理時間に大きな影響を与える。また、機械の能力により、使用できる機械学習モデルを判定でき、それにより、予想される精度も判定できる。バジェットの判定は、図７を参照して、ステップ３１０で実行される処理バジェットを判定する方法７００により更に詳細に説明する。
【００６５】
ステップ３１０で判定されるパラメータは、所定の準備動作を判定するための第１のサンプリングレート、指定された処理バジェット内でアプリケーションが検出できない動作の種類、並びに指定された処理バジェット内でビデオシーケンスを処理するのに適した畳み込みニューラルネットワークモデルアーキテクチャを含む。畳み込みニューラルネットワークモデルアーキテクチャは、入力画像の解像度及び畳み込みニューラルネットワークにより使用される層の数を使用して定義される。指定された処理バジェット内でアプリケーションが検出できない動作の種類はグラフィカルユーザインタフェースを使用して表示可能であり、それにより、ユーザは、判定された処理バジェットではいくつかの短期間イベントが検出されない可能性があることを認識する。検出されない可能性がある動作の種類は、図７に関連して以下に説明するように、例えば所要の処理時間に基づいて判定され得る。
【００６６】
復号フレームの画素寸法は、選択されたアルゴリズムに必要な入力により判定される。畳み込みニューラルネットワークモデルの場合、モデルが小さいほど、より小さいサイズのフレームビットマップを入力してもよい。一例は、各モデル構成が異なるサイズの画像ビットマップ入力を使用できる多くの異なるモデル構成を有するＭｏｂｉｌｅＮｅｔ分類畳み込みニューラルネットワークである。例としては、２２４×２２４画素、１９２×１９２画素、１２８×１２８画素のビットマップを使用できる異なるＭｏｂｉｌｅＮｅｔモデルである。上述したように、モデルが小さいほど処理は速くなるが、検出精度は低下する。画素寸法又はビットマップサイズは、選択されたアルゴリズムの特徴である。
【００６７】
ステップ３１０を実行した後、方法３００は復号ステップ３２０に進む。ステップ３２０において、ビデオからのフレームのセグメントは適切な既存の復号方法を使用してバッチとして復号される。バッチサイズは、検出／分類アルゴリズム２２０に提供される画像ビットマップのサイズ及びビットマップを保持するために使用可能なカメラ１００のメモリにより判定される。ビットマップは通常、フルビデオフレームより解像度がはるかに低いが、依然としてメモリを消費する。いくつかのシステム、特に組み込みシステムでは、全てのビデオフレームをビットマップとしてメモリに格納することは不可能である。ビデオが短時間であり且つ／又は使用可能なメモリが十分である他の場合、バッチは単にビデオの全フレームであり得る。バッチサイズは、フレームビットマップに使用可能なメモリのサイズを各フレームビットマップのメモリサイズで除算したものである。ビットマップサイズはステップ３１０で判定され、上述したＭｏｂｉｌｅＮｅｔ等の畳み込みニューラルネットワークモデルの場合と同様に、畳み込みニューラルネットワークモデルアーキテクチャのサイズ（入力画像の解像度及び畳み込みニューラルネットワークの層の数）に関係し得る。使用可能なメモリに応じて、ウィンドウを使用するシングルパスを使用してフレームシーケンスを復号できる。
【００６８】
図４は、フレームシーケンスからなるビデオ４００を示す。ビデオ４００は、フレームの第１のセグメント４１０を含む。フレームの第１のセグメント４１０は、ステップ３２０で処理されるセグメント４２０になり、フレームのセグメント４３０は、ステップ３２０で処理される次のセグメント４４０になる。
【００６９】
方法３００は、ステップ３２０から疎サンプリングステップ３２５に進む。ステップ３２５において、方法３００は、処理バジェットに適した畳み込みニューラルネットワークを使用してフレームのサンプル内の所定の動作を検出するため、ビデオのセグメントに所定の動作が撮像されている場合、少なくとも１つのサンプリングフレームが所定の動作を撮像している可能性が高い。ステップ３２５を第１のサンプリングと呼ぶ。アルゴリズムネットワーク２２０が所定の動作を検出するサンプルフレームを「基準フレーム」と呼ぶ。短期間動作を撮像したフレームは、基準フレームに対して短期間動作に依存する一定の距離内に見つかることが予想される。短期間動作を撮像したフレームは、方法３００による選択の候補である。短期間動作フレームの識別は、以下に説明するステップ３３０で実現される。ステップ３２５におけるサンプリングレートはステップ３１０で判定され、許容される処理バジェット及び所定の動作の予想される継続時間に基づくことができる。
【００７０】
ステップ３２５でサンプリングされた各フレームは、所定の動作が当該フレームに存在するかを検出するために、選択されたアルゴリズムに入力される。所定の動作は、例えば図２Ａに示す多くの所定の動作のうちの１つとマッチングされる。
【００７１】
図５Ａは、矢印５４０が指すフレームとして示される所定の動作を検出するための第１のサンプリングと、矢印５５０が指す第２のサンプルフレームとの双方を示す。第１のサンプリングレートは、ステップ３１０において１秒当たりのサンプル数として判定され、最も近いフレームに量子化される。図５Ａにおいて、第１のサンプリングは６フレーム毎のレートで行われる。５３０と示すフレームの範囲は、フレームが所定の動作を含まず、従って短期間動作に関係しないため、方法３００の後続のステップの対象でない。アルゴリズムネットワーク２２０は、フレーム５３０に対して所定の動作及び短期間動作のいずれも検出しない。アルゴリズムネットワーク２２０は、サンプル５６０及び５７０のフレームにおいて所定の動作を検出する。所定の動作が検出されたフレームは、基準フレームとして識別される。また、検出により、可能な所定の動作の種類のうち検出される種類が分類される。例えば分類は、野球の打撃準備又はゴルフのショット準備であり得る。通常、既知のアルゴリズムネットワークは、検出及び分類のための信頼度スコアを更に提供する。
【００７２】
１つの構成において、第１のサンプリング閾値が使用され、フレームが基準フレームとしてマーク付けされるためには信頼度スコアが第１のサンプリング閾値を超える必要がある。別の構成において、分類を判定するために、基準フレームに隣接するフレームが使用される。閾値が満たされない場合、隣接するフレームもサンプリングされる。図５Ｂにおいて、フレーム５８５がサンプリングされるが、信頼度が第１のサンプリング閾値５８３をわずかに下回り、例えば閾値５８３を１０％下回る場合、アルゴリズムネットワークを使用して隣接フレーム５９０及び５９５がサンプリングされて分類される。隣接フレーム５９０及び５９５において一貫した所定の動作の種類が検出される場合、フレーム５８５は所定の動作を含むと分類され、基準フレームとしてマーク付けされる。真陰性の結果では隣接フレームが閾値をわずかに下回る一貫して高い信頼度スコアを有する可能性が低いため、フレーム５８５にマーク付けすることは、偽陰性の可能性を識別し且つ偽陰性を補正するのに有用であり得る。基準フレームに対する分類マッチング閾値は、隣接フレームに対する分類に従って効果的に変更される。隣接フレームに基づいてフレーム５８５にマーク付けする技術は、閾値を低くすることと比較して、偽陽性率に影響を及ぼすことなく偽陰性率を低下させる。
【００７３】
方法３００は、ステップ３２５から密サンプリングステップ３３０に進む。ステップ３３０において、短期間動作フレームを検出するために、ステップ３２５で判定された基準フレームに対するフレームがサンプリングされる。ステップ３３０で実行されるサンプリングを第２のサンプリングと呼ぶ。基準フレームに対してサンプリングされるフレームは、検出された（マッチングした）所定の動作に対応する探索方向（例えば、基準フレームの後ろ）でサンプリング可能である。ステップ３３０で使用されるサンプリング頻度は、ステップ３２５で使用されるサンプリング頻度より高い。高いサンプリング頻度は、短期間動作の長さが関係する所定の動作の長さより短いことを反映する。図５Ａにおいて、基準フレーム５６０及び５７０が第１のサンプリングステップ３２５において検出される。ステップ３３０では、矢印５５０で示すフレームにおいてサンプルの更なる第２のサンプリングが行われる。特に、サンプリングフレーム５６５及び５６８のセットは基準フレーム５６０に対応してサンプリングされ、フレーム５７５及び５８０のセットは基準フレーム５７０に対応してサンプリングされる。第２のパスのサンプリングフレームのセットの各々は、基準フレームに対して得られる。サンプルは、第１のサンプリングより高いサンプリングレートで得られる。高いレートで第２のパスをサンプリングすることは、短期間動作が所定の動作より短いという事実を反映する。
【００７４】
一実現例において、第２のサンプリングレートは、第１のサンプリングで検出された所定の動作の種類に基づいて判定される。一例として、野球の打撃である短期間動作は通常は「ろうそくを吹き消す」という短期間動作より長く、「野球の打撃準備姿勢」という所定の動作が検出された場合、サンプリングレートは前者の野球の例において高く設定される。好適な実現例において、第２のサンプリングレートは、短期間動作の予想される長さの間に少なくとも２つのフレームがサンプリングされるという結果が得られるように設定される。例えば「野球の打撃」という短期間動作は、「野球の準備」という所定の動作の直後に行われると予想され、短期間動作は通常は４フレームの継続時間を有する。第２のサンプリングが短期間動作の間に少なくとも２つのフレームをサンプリングすることを目的とする場合、ステップ３３０は、「野球の準備」という所定の動作を含むと検出された基準フレームの直後の短期間動作の継続時間に間の少なくとも２フレーム毎にサンプリングする必要がある。異なる所定の動作の種類の場合、関連する短期間動作は異なる第２のサンプリングレートを必要とする異なる継続時間を有してもよい。例えば誕生日ケーキの後方に集まる人間が基準フレームにおいて検出され、「ろうそくを吹き消す」という短期間動作が検出される場合、「ろうそくを吹き消す」という短期間動作が約２秒かかると仮定すると、「ろうそくを吹き消す」という短期間動作の継続時間に対応する６０フレーム内で少なくとも２つのフレームをサンプリングするためには、第２のサンプリングレートは１０〜３０フレーム毎に設定される。そのため、ステップ３２５において基準フレーム内で検出された所定の動作の種類により、短期間動作を検出するための第２のサンプリングレートを判定できる。別の一実現例において、第２のサンプリングレートは第１のサンプリングレートより高い固定レートである。従って、第２のサンプリングレートは、基準フレーム内で検出された所定の動作に対応することができる。更に別の実現例において、第２のサンプリングレートは、基準フレームの前及び／又は後の所定の数のフレーム内の全フレームをサンプリングすることに関することができる。
【００７５】
上述したように、第２のサンプリングステップ３３０におけるサンプリングは、基準フレームの後ろで行われる。所定の動作の中には、短期間動作が所定の動作の前に生じるものがある。所定の動作の前に生じる短期間動作は、スポーツにおける祝福という所定の動作の場合に当てはまる。例としては、短期間のゴールが決まった後のチームメイトとの抱擁及び短期間のゴルフパットの後の「ハイタッチ」での祝福等である。例はスポーツに限定されない。別の例は、短期間のろうそくの吹き消しの後に行われることが多い抱擁又は他の交流を含む。通常は短期間動作が先行して生じる所定の動作が検出された場合、第２のサンプリングの探索「方向」は基準フレームの前で行われるように逆向きにされる。
【００７６】
ステップ３３０における第２のサンプリングで検出された撮像フレームが高精度で分類されることが重要である。同レベルの精度は第１のサンプリングにおいて不要である。図６Ａ及び図６Ｂは、ステップ３２５での第１のサンプリング及びステップ３３０での第２のサンプリングにおける２つの異なる精度要件を解決するために使用可能ないくつかの方法を示す。
【００７７】
図６Ａは、構成６００を示す。図６Ａに示すように、第１の（疎な）サンプリング及び第２の（密な）サンプリングにおいて２つの異なるアルゴリズムネットワーク６１０及び６１５を使用できる。大きいネットワーク６１５は、大きいモデルアーキテクチャが有する学習用パラメータが多く且つ入力される高解像度画像の画素データが多いため、小さいネットワーク６１０と比較して速度は遅いが高い精度を得られる。通常のビデオにおいて検出される所定の動作は相対的に少ないため、第２のサンプリングステップ３３０で使用されるアルゴリズムネットワーク６１５の相対的な遅さは問題ではない。従って、ネットワーク６１０により処理される第１のサンプリングのサンプル数と比較して、ネットワーク６１５により処理される第２のサンプリングのサンプル数は相対的に少ない。
【００７８】
図６Ｂにおいて、第１のサンプリング（ステップ３２５）及び第２のサンプリング(ステップ３３０）で動作を分類するために２つの異なる信頼度閾値が使用され、第２のサンプリング閾値の方が高い。異なる閾値が示され、第１のサンプリングステップ３２５は閾値６３０を使用してフレーム６４５においてサンプルを検出し、第２のサンプリングステップ３３０は高い閾値６４０を使用して６５０及び６５５においてサンプルを検出する。図６Ｂにおいて６２０と示されるフレームは所定の動作を有するフレームであり、６２５と示されるフレームは短期間動作のフレームである。図６Ｂの例では、第１のサンプリングのサンプル６５０において、アルゴリズムネットワーク６１０は閾値６３０を上回るが閾値６４０を下回る信頼度レベルを有する所定の動作を検出する。サンプル６５０は第１のサンプリング（ステップ３２５）においてサンプリングされるため、信頼度レベルは許容される。第２のサンプリングにおいてサンプリングされるフレーム６５５の場合、アルゴリズムネットワーク６１５は閾値６４０より高い信頼度を有するため、フレーム６５５は撮像フレームとして正確にマーク付けされる。低い閾値６３０は、第１のサンプリングにおいて偽陰性にされる可能性のある所定の動作の分類の数を減少する効果を有する。従って、低い閾値６３０は、第１のサンプリングにおいて偽陽性であるため第２のサンプリングが実行されない結果として短期間動作フレームを見逃すリスクを最小限にするのに役立つ。低い閾値６３０は、第１のサンプリングにおける偽陽性の数を潜在的に増加させる可能性もある。しかし、処理量が増加したとしても、偽陽性の所定の動作のフレームの分類により行われる不必要な第２のサンプリングの結果として短期間動作のフレームが生じないため、偽陽性の増加が精度に及ぼす影響は大きくない。図６Ｂにより示すように、基準フレーム及び第２のサンプリングレートを使用してサンプリングされたフレームは異なる閾値を使用して分類可能であり、基準フレームに対する閾値は通常は低い閾値である。
【００７９】
ステップ３３０を実行した結果、検出されたあらゆる短期間動作フレーム（撮像フレーム）が短期間フレームの累積リストに追加される。上述したように、畳み込みニューラルネットワークは、各々が異なるサイズの画像ビットマップ入力を使用できる多くの異なるモデル構成を有してもよい。従って、異なるフレーム（例えば、基準フレーム及び短期間動作を撮像したフレーム）は、第１の畳み込みニューラルネットワーク（ステップ３２５）及び第２の畳み込みニューラルネットワーク（ステップ３３０）の入力次元とそれぞれマッチングする解像度で復号又は解析可能である。
【００８０】
方法３００は、ステップ３３０から破棄ステップ３３５に進む。ステップ３３５は、ステップ３２０で割り当てられたセグメントフレームリソースを解放するように動作する。割り当てられたセグメントフレームリソースは、ステップ３２５及び３３０で行われる動作の検出及び分類に利用可能であったビットマップである。ステップ３３５は、割り当てられたフレームリソースに対する画像データを破棄するように動作する。
【００８１】
方法３００は、ステップ３３５から判断ステップ３４０に進む。ステップ３４０は、分類のために解析又は処理される更なるフレームが存在するかを判定するために実行される。処理される更なるフレームが存在する場合（ステップ３４０で「ＹＥＳ」）、方法３００はステップ３２０に進み、ステップ３２０、３２５、３３０及び３３５の実行が繰り返される。使用できる更なるフレームが存在しない場合（判断ステップ３４０で「ＮＯ」）、方法３００はステップ３４５に進む。
【００８２】
ステップ３４５において、ステップ３３０で累積されたフレームが優先され、方法３００は累積されたフレームのうちのいくつか又は全てを選択して出力する。ステップ３３０で出力されたリスト化されたフレームが優先され、ステップ３４５において、リスト化されたフレームの最上位（「最善」）のフレームが選択される。アプリケーションによるフレームの使用状況に応じて、最善のフレーム又は種々の適切なフレームを出力するために選択するために、異なる優先順位付け方法が使用されてもよい。例えば、撮像されたビデオを表すためにアプリケーションが単一のフレームしか必要としない場合、全ての撮像フレームがリストに追加された後に動作検出の信頼度と画質の組み合わせに基づいて撮像フレームに優先順位が付けられてもよく、最上位フレームが選択される。別の例として、アプリケーションがスライドショーを作成するために多くのフレームを使用する必要がある場合、単一の動作からの撮像フレームに局所的に優先順位が付けられ、各動作の最上位フレームが選択されてもよい。局所的な優先順位付けにより、ビデオを処理中に各動作からのフレームを選択して出力できる。
【００８３】
場合によっては、出力フレームの画質が十分であることを保証し且つ重複が生じないことを保証するために、ステップ３４５においてフィルタリングを実行できる。ステップ３３０におけるフレームサンプルは、画質に基づいて、重複又は略重複を回避するために優先順位付け及びフィルタリングが行われる。画質のためのフィルタリング又は重複を回避するためのフィルタリングは、既知の技術を使用して実現される。鮮明度、色彩度及び構図は、知覚される画質の尺度を提供できる基本的な技術的メトリックである。既知のフィルタリング技術は、鮮明度の尺度として検出された短期間動作の領域内の十分に鮮明なエッジの存在を検出すること、色彩度の尺度としてフレーム全体の色ヒストグラムの広い分布を判定すること、並びに良好な画像構図のためにフレーム内の検出された短期間動作の領域の位置及びサイズを評価すること等を含む。フレームの色ヒストグラムを比較することにより、画像の略重複を検出できる。例えば９０％である特定の閾値を超えて重複する２つの色ヒストグラムの割合に基づいて計算された距離メトリックは、２つのフレームが略重複であると判定するために使用可能であり、画質の尺度が低いフレームが選択のためにフィルタリングされてもよい。
【００８４】
方法３００により選択された撮像フレームはフォトブックに含めるのに適しており、選択されたフレームを含むフレームシーケンスはビデオハイライトとして使用できる。方法３００を実行することにより識別された所望のフレームから他のメディア項目を作成することもできる。ステップ３４５は、選択されたフレームをフォトブックに関連付けて格納すること、ハイライトを示すためにフレームに注釈を付けること、フレーム又はフレームのサムネイルをユーザに対して表示することを含むことができる。図７を参照して、ステップ３１０で実行される処理パラメータを設定する方法７００を一例として説明する。方法７００は、カメラ１００のＲＯＭ１６０に常駐し且つプロセッサ１５０（又は制御部１２２Ｃの場合はＧＰＵ１５０Ｇ）の実行下で制御されるシステムプログラム１６１の１つ以上のソフトウェアコードモジュールとして実現されてもよい。
【００８５】
方法７００は、レート判定ステップ７１０から開始する。ステップ７１０は、選択方法３００のサンプリングステップ３２５及び３３０に対する全体的な時間バジェットを判定するように動作する。方法３００は通常、設定された期間内に選択を実行することが必要とされる。状況によっては、期間は「リアルタイム」であり、これは、ビデオが毎秒３０フレームで記録されている場合にアルゴリズムのフレーム当たりのバジェットが３０分の１秒であることを意味する。殆どの場合、最大処理期間が設定されるが、方法３００は、選択処理を効果的に実行するのに必要な時間のみを消費することが期待される。時間バジェットを消費するステップは、全ビデオフレームの復号、第１のサンプリングステップ３２５及び第２のサンプリングステップ３３０である。判定されるサンプリングステップに対する時間バジェットは、最大処理期間から全ビデオフレームの復号時間を減算したものであり得る。
【００８６】
方法７００は、以下の３つの動作パラメータを判定するように実行する。
・  第１のサンプリングレート
・  使用されるアルゴリズムネットワーク
・  対象とされる所定の動作のセット
【００８７】
ステップ７１０において、デフォルトのアルゴリズムネットワーク及び所定の動作のセットが仮定される。ステップ７１０は、第１のサンプリングレートを判定する。一実施形態において、第１のサンプリングレートは、所定の動作の間に少なくとも２つのサンプルが得られることが予想されるように設定される。従って、所定の動作の各々は対応する第１のサンプリングレートを有する。通常、所定の動作の種類の各々の継続時間は事前に認識される。例えば野球の打撃準備姿勢の通常の時間は、打者がボールを打つ前の約５秒以上であることが知られている。従って、初期の第１のサンプリングレート（所定の動作の間に２つのサンプルを撮像するのに十分である）は、所定の動作の各々に関連付けられている。
【００８８】
図５Ａは、所定の動作５２０において得られる第１のサンプリングレートの２つのサンプル５６０及び５７０を示す。アルゴリズムネットワークにより検出及び分類が可能である多くの異なる所定の動作が存在する場合、秒数が最小予想時間長（ＰＥmin）である所定の動作を使用して、１秒当たりのサンプル数である第１のサンプリングレート（ＦＳＲ）を判定する。ＦＲＳを判定するための式（１）を使用できる。
ＦＳＲ＝２／（ＰＥminの予想時間長）                …（１）
【００８９】
ＦＳＲを式（１）に設定する代替の方法が使用されてもよい。代替の方法の例は、平均ＰＥminと、ＰＥminの時間分散の標準偏差とを計算において判定することを含む。別の実施形態において、統計的に十分な数の所定の動作がサンプリングにおいて検出されると仮定して、ＰＥminの予想長より短い期間が結果として得られるＦＳＲを使用することができる。
【００９０】
ステップ７１０は、デフォルトのアルゴリズムネットワーク及びデフォルトの所定の動作のセットを用いて、ビデオシーケンスの予想処理時間の推定値を判定する。方法３００が完了するまでにかかる時間を判定する際、式（２）を使用できる。
処理時間＝ビデオの長さ（秒）＊ＦＳＲ＊アルゴリズムネットワークの処理時間＋第２のサンプリング処理のための時間＋フレーム復号時間        …（２）
【００９１】
式（２）において、上述したアルゴリズムネットワークの処理時間は方法が実行されているハードウェアシステム１２２に非常に依存する。例えばＧＰＵ１５０Ｇ等のＧＰＵが使用可能である場合、畳み込みニューラルネットワークの処理は大幅に高速化される。アルゴリズムネットワークは、一般に、方法３００が実行されるシステム１２２に対するアルゴリズムネットワークの処理時間を推定するために使用できる記載される数の乗算加算を有する。あるいは、時間はいくつかの基準システムで測定可能であり、方法３００が実行されるシステム１２２に対する時間を推定するために基準図が使用される。
【００９２】
式（２）において、第２のサンプリング処理のための時間は、検出される所定の動作の数に依存する。図５Ａにおいて、第２のサンプリングは２つのフレーム５６５及び５７５から開始する。第２のサンプリングは、所定の動作がフレーム５６０及び５７０において検出された場合のみ行われる。一実施形態において、第２のサンプリング処理のための時間が考慮される。この場合、検出され得る基準フレームの最大数（ＲＦｍａｘ）に対する制限が式（３）に基づいて設定される。
第２のサンプリング処理のための時間＝ＲＦｍａｘ＊アルゴリズムネットワークの処理時間＊Ｅｘｐ２ｎｄＳａｍｐｌｅｓ                            …（３）
【００９３】
式（３）において、Ｅｘｐ２ｎｄＳａｍｐｌｅｓは、基準フレーム当たりの第２のサンプルの期待数である。（ＦＳＲ）と同一の式が第２のサンプリングレートに適用される場合、Ｅｘｐ２ｎｄＳａｍｐｌｅｓは２である。あるいは、後の選択のために多くの撮像フレームが検出されることを保証するために、相対的に多い数が使用されてもよい。あるいは、第２のサンプリング処理のための時間は、処理時間を判定する際に無視されてもよい。
【００９４】
式（３）において、フレーム復号時間は、単一のビデオフレームを復号するのにかかる時間にビデオフレームの数を乗算した時間である。単一のフレームを復号するのにかかる時間は多くの異なる基準システムで測定可能であるため、方法が実行されるシステム上でのフレーム復号時間について合理的な推定を行うことができる。
【００９５】
方法７００は、ステップ７１０から判断ステップ７２０に進む。判断ステップ７２０において、デフォルトのアルゴリズムネットワーク及びデフォルトの所定の動作を使用して式（２）を用いて判定された処理時間が許容可能なバジェットと比較される。処理時間がバジェットより大きい場合（ステップ７２０で「ＮＯ」）、方法７００は判断ステップ７４０に進む。処理時間がバジェット内である場合（ステップ７２０で「ＹＥＳ」）、方法７００は設定ステップ７３０に進む。処理時間がバジェット内である場合、第１のサンプリングレートは所定の動作の継続時間に従って効果的に判定される。
【００９６】
ステップ７３０において、ＦＳＲに対する式（１）により判定される第１のサンプリングレートが設定され、アルゴリズムネットワークはデフォルトのアルゴリズムネットワークに設定され、所定の動作はデフォルトの所定の動作のセットに設定される。
【００９７】
ステップ７４０において、処理時間が相対的に短い代替のアルゴリズムネットワークが考慮される。ステップ７１０で使用されたデフォルトのアルゴリズムネットワークは、代替のアルゴリズムネットワークのセットの中で精度が最も高いアルゴリズムであると選択される。代替のアルゴリズムネットワークは速度が速いが精度が低い。ステップ７４０において、処理時間に対する式（２）は代替のアルゴリズムネットワークを用いて使用され、許容可能なバジェット内に収まる処理時間が結果として得られる最も高精度のアルゴリズムネットワークが選択される。
【００９８】
方法７００は、ステップ７４０から判断ステップ７５０に進む。判断ステップ７５０において、プログラム１６１を実行して、許容可能なアルゴリズムネットワークが見つかったかを判定する。換言すると、ステップ７５０は、現在のアルゴリズムネットワークが処理時間に収まるかを判定する。許容可能なアルゴリズムネットワークが見つからない場合（ステップ７５０で「ＮＯ」）、方法７００は以下に説明する検出ステップ７７０に進む。許容可能なアルゴリズムネットワークが見つかった場合（ステップ７５０で「ＹＥＳ」）、方法７００は選択ステップ７６０に進む。ステップ７６０において、ＦＳＲに対する式（１）により計算された第１のサンプリングレートが設定され、アルゴリズムネットワークはステップ７４０で判定された許容可能なアルゴリズムネットワークに設定され、所定の動作はデフォルトの所定の動作のセットに設定される。
【００９９】
ステップ７７０において、予想期間が最短である所定の動作から開始して所定の動作が除去され、ＦＳＲ及び処理時間に対する式が再度実行され、処理時間が許容可能なバジェット内であるか判定される。処理時間が許容可能なバジェット内になるまで、ステップ７７０が繰り返される。処理時間が許容可能なバジェット内になると、方法７００は残りの所定の動作のセットが許容可能かを考慮する。ステップ７７０は、関連する第１のサンプリングレートに基づいて１つ以上の所定の動作を選択するように効果的に動作し、関連する第１のサンプリングレートを使用して処理バジェットと推定時間とを比較する。いくつかの実現例において、ステップ７７０は、除去された所定の動作に基づいて、検出される可能性が低い所定の動作をカメラ１００のユーザに通知するように動作できる。
【０１００】
方法７００は、ステップ７７０から判断ステップ７８０に進む。判断ステップ７８０において、許容可能な所定の動作のセットが残っていない場合（ステップ７８０で「ＮＯ」）、方法７００は設定ステップ７９５に進む。ステップ７９５において、許容可能なバジェットに収まる最大サンプリングレートが設定される。ステップ７９５で設定されたサンプリングレートでは、全ての所定の動作は検出されない場合がある。ＦＳＲは、式（３）を用いて処理時間が許容可能なバジェットに収まるような値に設定することができる。
【０１０１】
ステップ７８０で許容可能な所定の動作のセットが見つかった場合（ステップ７８０で「ＹＥＳ」）、方法７００は制限ステップ７９０に進む。ステップ７９０において、式（１）で計算された第１のサンプリングレートが設定され、アルゴリズムネットワークはデフォルトのアルゴリズムネットワークに設定され、所定の動作はステップ７７０から返された動作に設定される。
【０１０２】
ユーザが誕生日というテーマを選択したスライドショーアプリケーション等、アプリケーションがビデオから予想される動作の限定されたサブセット等のヒントを提供できる場合、方法７００は事前に（すなわち、ユーザに要求される前に）実行できる。ヒントは、カメラ１００のボタン１２４〜１２６及びディスプレイ１２３等の電子機器のインタフェースを使用してユーザによりビデオのメインテーマを指定することにより与えられてもよい。ヒントは、例えばディスプレイ１２３上に再生されたメニューのオプションをユーザが選択することにより入力されてもよく、あるいは、テーマに基づいて又はビデオを分類器に入力する等の他の何らかの方法でプログラム１６１がビデオの簡単な分類を使用してテーマを判定することにより入力されてもよい。ヒントは、精度を低下させることなく最大速度を達成するように方法３００のステップ３１０でパラメータを判定するために、処理パラメータ判定方法７００により使用されてもよい。ヒントを使用することにより、判定ステップ７７０はビデオ内で予想される動作のみを考慮することができ、従って、高いサンプリングレートを必要とする短時間の動作を潜在的に無視できる。
【０１０３】
特定のアプリケーションに対して、処理バジェットが常に固定されており且つビデオ内に予想される動作の事前知識がない場合、処理パラメータ判定方法７００は事前に一度判定され（方法３００を実行するためのユーザコマンドを受け取る前に実行され）、全てのビデオに対して使用されてもよい。
【０１０４】
説明した構成は、コンピュータ／データ処理産業に適用可能であり、特にビデオ処理産業に適用可能である。上述したように、説明した構成は、フォトブック、ハイライトの識別及び／又は注釈付け等の画像又はビデオに関連するアプリケーションに使用可能である。
【０１０５】
基準フレームを検出するためにステップ３２５で第１のサンプリングレートを使用する場合、所定の動作の継続時間に従うレートでサンプリングされたフレームを使用することにより、全てのフレームを解析することなく所定の動作を検出できる。しかし、所定の動作は精度を低下させることなく検出可能である。ステップ３３０で高いサンプリングレートを使用して基準フレームに関連する場所を有するフレームを更にサンプリングすることは、精度を低下させることなく、向上した検出時間で短期間動作を検出できるようにするように動作する。上述のように、第１のサンプリングレート及び第２のサンプリングレートの判定は、処理時間バジェットを守るためにも使用可能である。従って、説明した構成は、ビデオカメラ又はスマートフォン等の計算リソースが制限される装置及び／又はＧＰＵ１５０Ｇ等のＧＰＵを含む装置上での実現に特に適している。説明した方法は、計算の輻輳及び処理時間を減少するために、デスクトップコンピュータ等の他の装置の実現にも適している。
【０１０６】
以上、本発明のいくつかの実施形態のみを説明したが、本発明の主旨の範囲から逸脱することなく変更及び／又は変形を行うことでき、実施形態は例示するものであって限定するものではない。
【０１０７】
本明細書の文脈において、「備える」という用語は、「主に含むが必ずしもそれのみ含むものではない」又は「有する」又は「含む」ことを意味し、「それのみで構成される」という意味ではない。「備える」という単語の変形は、それに対応する種々の意味を有する。
【図１Ａ】
2019212312.tif 000003
【図１Ｂ】
2019212312.tif 000004
【図１Ｃ】
2019212312.tif 000005
【図２Ａ】
2019212312.tif 000006
【図２Ｂ】
2019212312.tif 000007
【図３】
2019212312.tif 000008
【図４】
2019212312.tif 000009
【図５Ａ】
2019212312.tif 000010
【図５Ｂ】
2019212312.tif 000011
【図６Ａ】
2019212312.tif 000012
【図６Ｂ】
2019212312.tif 000013
【図７】
2019212312.tif 000014