画像が答えるべき質問から始める
フレーム抽出は、画像フォーマットの問題である前に、サンプリングの問題です。有用な時間範囲と、画像から誰かが下す決定を定義します。会議のコンタクトシートには幅広いシーンをカバーする必要があります。アニメーションのレビューには、密集した状態が必要です。サムネイル検索には、視覚的に異なる候補の管理可能なセットが必要です。
まずトリミングします。 20 分の記録物のうち 45 秒だけの場合は、サンプリング密度を上げる前にその範囲を設定します。これにより、デコード作業、メモリ使用量、重複しているように見えるフレーム、および結果の検査に必要な時間が削減されます。
- カレンダー時間が安定した単位である場合、間隔 を使用します (5 秒、10 秒、または 30 秒ごとに 1 つの画像)。
- モーションの間隔が重要な場合は、要求された FPS を使用します。たとえば、短いアクション全体で 1 秒あたり 2 サンプルです。
- レビューの労力や出力量が固定されている場合 (たとえば、シーン全体で 24 個の候補) には、固定数 を使用します。
- 単一フレームは、その瞬間がすでにわかっている場合、または近くのフレームを検査するのに十分な範囲を狭めた場合にのみ使用してください。
抽出前に間隔出力を計算する
I 秒ごとにサンプリングされる開始時刻 S から終了時刻 E までの範囲の場合、両方の範囲境界が含まれる場合、有用な推定値は Floor((E - S) / I) + 1 となります。したがって、10 秒ごとにサンプリングされる 60 秒の範囲では、約 7 つのタイムスタンプ (0、10、20、30、40、50、および 60 秒) が生成されます。タイムスタンプはデコード可能でなければならないため、最終的なカウントはメディア境界で変わる可能性があります。
推定画像数が 240 枚を超える場合は、範囲を短くするか、間隔を長くしてください。たとえば、30 分の範囲を 5 秒ごとにサンプリングすると、およそ 361 個のタイムスタンプが必要になります。間隔を 8 秒に増やすと、推定値は約 226 に減り、これは 1 回の実行に収まります。もう 1 つのオプションは、別々のシーンを処理して、それぞれの結果を確認しやすくすることです。
インターバルサンプリングは、イベントが数秒または数分で議論されるチュートリアル、講義、検査、および長時間の録音で特に読みやすくなります。これは、間隔の広い 2 つのタイムスタンプの間で終了する短い移動にはあまり適していません。
要求された FPS の意味を理解する
要求された FPS は、ツールが 1 秒あたりにサンプリングするタイムスタンプの数を制御します。ソース ビデオは変更されず、ソース フレーム レートも証明されません。要求された 2 FPS では、ターゲット間隔は 0.5 秒です。 10 要求された FPS では、0.1 秒です。両方のエンドポイントが含まれる場合、要求された 5 FPS で 12 秒の範囲には約 61 個のタイムスタンプが必要になります。
クリップの有用な時間的詳細を超えてサンプリングすると、多くの場合、ほぼ重複したものが作成されます。 30 ソース FPS で記録された静的プレゼンテーションでは、1 秒あたり 30 枚のエクスポート画像が必要になることはほとんどありません。対照的に、2 秒間のインタラクション バグは、10 リクエストされた FPS から恩恵を受ける可能性があるため、コンパクトなシーケンス全体で状態の変化が表示されます。
可変フレームレートのメディアでは、この区別がさらに重要になります。ブラウザはメディア時間によってシークし、その時間付近でデコードされたプレゼンテーション フレームを返します。完全に一定の間隔ごとに 1 つのソース フレームが存在するわけではありません。正確なソース フレームのインデックス付けを行うには、プレゼンテーションのタイムスタンプとフレーム ID を公開するように設計されたデコーダーを使用します。
制限付きレビュー作業には固定カウントを使用する
固定数モードでは、選択した範囲全体に選択した数の候補を分配します。 90 秒の範囲に 10 枚の画像が必要な場合、候補間のおおよそのギャップは 90 / (10 - 1)、つまり両方のエンドポイントが含まれる場合は 10 秒になります。このモードでは、クリップの長さが異なる場合でも、レビューの作業負荷を予測できます。
便利な 2 パス ワークフローは、広範囲にわたる 12 ~ 24 枚の画像から始まります。最も強いサブ範囲を特定し、その小さなウィンドウ内で同じカウントを繰り返します。 2 番目のパスでは、無関係な映像から何百もの画像を生成することなく、時間的な詳細を向上させます。
このアプローチは、サムネイル、イベント写真、製品のアングル、ビジュアル QA に適しています。また、他の人に説明するのも簡単です。「これら 20 個の候補を検討する」ことは、任意の FPS 設定よりも明確な引き継ぎです。
実行されたサンプリング計画
10 分間のソフトウェアのウォークスルー
30 秒間隔で約 21 枚の画像を作成します。ロード画面と重複した状態を削除します。 1 つのワークフローでさらに詳細な情報が必要な場合は、その分を分離して 5 秒ごとにサンプリングします。インターフェイスの小さなテキストを読み取れるようにする必要がある場合は、PNG をエクスポートします。
8秒スポーツプレイ
プレイまでの範囲をトリミングし、約 65 人の候補者に対して 8 FPS を要求します。ボールの位置、ポーズ、オクルージョン、モーション ブラーを確認します。最終的な JPG または PNG をエクスポートする前に、最適な 1 秒ウィンドウに絞り込み、単一フレームのナッジを使用します。
45分間の講義コンタクトシート
2 分間隔で約 23 枚の画像を作成します。これは、出力をレビュー不能なギャラリーにせずにトピックの変更を識別するには十分です。スライドのテキストが重要な場合は、ソースの幅を維持するか、読みやすさを維持できる最大幅を設定します。
データセット検査サンプル
人間によるレビューの予算に一致する固定カウントを選択し、正確な時間範囲と設定を記録します。サンプルによってシーンのバランスや明らかな品質の問題が明らかになりますが、自動的に統計的に代表されるわけではありません。データセットの設計、クラスのバランス、ランダム化には別の方法が必要です。
密度を上げる前に結果を確認する
タイムスタンプを順番に確認し、次の 3 つの質問をします。重要なトランジションが欠落していませんか?連続した画像が多いと視覚的に冗長ですか?査読者は各画像が存在する理由を理解できますか?イベントが欠落している場合は、より狭い範囲またはより高密度のサンプルが必要になります。冗長性を確保するには、間隔を広くするか、要求される FPS を低くする必要があります。
最初のパスは意図的に小さくしてください。ブラウザでデコードされたフル解像度の画像は、圧縮されたビデオ ソースが示すよりもはるかに多くのメモリを占有する可能性があります。 1920 x 1080 のキャンバスには、画像エンコード前に約 830 万 RGBA バイトが含まれるため、ダウンロードした JPG ファイルがコンパクトであっても、多数の同時プレビューによってモバイル デバイスに負荷がかかる可能性があります。
サンプルで有望な瞬間が特定された場合は、正確なフレーム ガイド に進むか、ビデオからフレームへのコンバーター を開いて今すぐ計画を適用します。