10,000 枚の役に立たない画像を生成する間違い

ビデオをトレーニング データに変換するための明白なアプローチは、すべてのフレームを抽出することです。徹底した感じですね。これは最悪の事態に近いです。

30 fps ビデオの連続フレームは 33 ミリ秒間隔です。カメラまたは被写体が速く動いていない限り、フレーム 1,001 はフレーム 1,000 とほぼ同じです。同じポーズ、同じ照明、同じ背景、数ピクセルの違いです。このようなフレームが 10,000 個あるデータセットには、10,000 個のサンプルが含まれていません。これには、おそらく 300 の異なる状況が含まれており、それぞれが 30 回繰り返されます。

これがトレーニングに与える影響は特殊であり、有害です。注釈のコストは画像数に応じて増減するため、同じ情報に対して 30 倍の料金を支払うことになります。トレーニング時間もスケールします。そして最も重要なことは、これらのほぼ重複したものがトレーニング/検証分割の両側に存在する場合、モデルは事実上検証セットを認識していることになります。つまり、何の意味もない検証スコアが得られます。

したがって、最初の決定はツールの設定ではありません。それは、新しい例としてフレーム数をカウントする前に、コンテンツはどのくらい変更する必要があるかということです。

サンプリング間隔の選択

ソースのフレーム レートではなく、シーン内のモーションから導き出します。作業の開始点:

  • 静止カメラ、遅い被写体 (監視、植物の成長、行列) - 2 ~ 10 秒ごとに 1 フレーム。密度が高いものはすべて冗長です。
  • 静止カメラ、アクティブな被写体 (ベンチで作業している人、交通状況) - 0.5 ~ 2 秒ごとに 1 フレーム。
  • 移動カメラにロードします (ハンドヘルド、ドローン、車載カメラ) - 1 秒あたり 2 ~ 5 フレーム。背景は継続的に変化するため、フレームは明確に保たれます。
  • ポーズ自体がラベルとなる高速アクション (スポーツ、ジェスチャ認識) - 1 秒あたり 5 ~ 15 フレーム、ただしアクションを含むセグメント間のみ。

解決方法: 1 分間のテスト セグメントを数間隔で抽出し、結果を並べて確認します。ページをめくって、それぞれの画像が何か新しいことを伝えてくれれば、その間隔は適切です。フリップブックのように見える場合は、幅を広げてください。

抽出する前に演算を行ってください。 フレーム = 期間 × ターゲット レート。 1 秒あたり 1 フレームの 90 分間の映像は 5,400 枚の画像に相当し、おそらく 1 週間分の注釈に相当します。 5 秒あたり 1 フレームだと 1,080、つまり数日になります。この決定には 5 分ほど考える価値があります。

エクストラクタ、「時間間隔」モードではギャップが秒単位で直接取得され、入力時にフレーム カウントが表示されます。そのため、上記の数値は後で発見されるのではなく、コミットする前に表示されます。

下流で重要な抽出設定

形式: PNG または JPEG

正直な答えは、通常、人々が期待するほど重要ではありませんが、重要になるケースには価値があるということです。

使用 PNG タスクが細かいディテールや圧縮アーティファクトに敏感な場合 - 表面の欠陥検出、OCR に隣接した作業、医療または科学画像処理、後でピクセル値を測定する可能性のあるもの。を使用します 90 ~ 95% の JPEG 一般的なオブジェクトの検出と分類の場合。モデルは軽度の圧縮に対して堅牢であり、ストレージの差は 5 ~ 10 倍です。

選択に関係なく 1 つの一貫性ルール: 混合しない。さまざまな品質の半分が PNG で半分が JPEG であるデータセットはモデルにスプリアス信号を与え、モデルはスプリアス信号を見つけるのに非常に優れています。

解像度

ソース解像度で抽出し、前処理でダウンスケールします。抽出時ではなくパイプラインです。破棄したディテールは復元できません。また、1 年後には、224 で抽出したフッテージから 512 ピクセルのクロップが必要になるかもしれません。特にソースフッテージが不便な場所にアーカイブされている場合は、再抽出よりストレージの方が安価です。

名前

ゼロ パディングされた連続名。これまでに作成する最大のセットに十分な幅があります。 frame_00001.pngframe_1.png。ファイル名をテキストの順序で並べ替えるツール frame_10 前に frame_2また、パイプラインのどこかで時間的順序が重要な場合、そのバグは微妙で見つけにくいです。

出所が残るように、ファイル名ではなくソースをパスに含めます。

dataset/
                  raw/
                    cam01_2026-03-14/
                      frame_00001.png
                      frame_00002.png
                    cam02_2026-03-14/
                      frame_00001.png
                  splits/
                    train.txt
                    val.txt
                    test.txt

画像を train/ ディレクトリと val/ ディレクトリに物理的にコピーするのではなく、パスをリストしたテキスト ファイルとして分割を保持すると、次のことが可能になります。再コピーせずに再分割すると、何がどこにあったかを正確に確認できます。

実際に重要な分割ルール

これは、信頼できるベンチマークと信頼できないベンチマークの違いであるため、二度読む価値のある部分です。

フレームごとではなく、ソース ビデオごとに分割します。

すべてのフレームをシャッフルし、ランダムに 80/20 に分割すると、同じビデオの同じ秒のフレームが両側に表示されます。検証セットはトレーニング セットのほぼコピーとなり、検証の精度によって記憶力が測定されます。この方法でトレーニングされたモデルは、日常的に 97 ~ 99% を報告し、その後、真に新しい映像では失敗します。この失敗は、分割がどのように行われたかを確認するまでは不可解です。

正しいアプローチ: 動画全体をトレーニング、検証、テストに割り当てます。長いビデオが 1 つだけの場合は、時間ごとに連続したブロック (最初の 70% がトレーニング、次の 15% が検証、最後の 15% がテスト) に分割し、各境界の両側の数秒を破棄して、重複に近いペアが境界をまたがないようにします。

可能な場合は、録画全体を保留します。 セッション、カメラ、またはテスト セットの場所。これは、モデルがタイムスタンプ全体ではなく条件全体で一般化しているかどうかを測定します。これは、ほとんどの場合、実際に関心のある質問です。

ローカルで作業すること、そしてなぜここで重要になることが多いのか

この分野に特有の実用的なメモ: 研究や産業用ビデオは、患者の記録、クラウド サービスではなく研究に同意した人々の映像、独自の製造ライン、出版前の実験など、気軽にアップロードできない素材であることがよくあります。

ブラウザベースの抽出では、ファイルはマシン上に保持されます。何も転送されません。これは、制約が優先事項ではなく倫理承認またはデータ処理契約である場合に重要です。これを信頼するのではなく、確認することができます。ページをロードし、ネットワークから切断し、抽出します。それでも機能する場合は、何も進んでいません。 それを検証する方法 約 1 分かかります。

制限についても同様に明確にしてください。フレームはダウンロードされるまでメモリに保持されるため、長いソースは時間範囲のチャンクで処理する必要があります。数百のファイルにわたる反復可能なパイプラインの場合、ローカルの FFmpeg スクリプトが適切なツールです。ブラウザは、探索的な作業、1 回限りの抽出、および間隔を決定しながらフレームを表示したい場合に使用されます。

注釈を開始する前のチェックリスト

注釈は高価な手順です。開始前にこれらを確認すると、最も時間を節約できます。

  1. 50 個のランダム フレームをページスルーします。 それぞれに目に見えて違いはありますか?そうでない場合は、ラベル付け後ではなく、間隔を広げて再抽出します。
  2. クラスのバランスを確認してください。 均一な時間サンプリングにより、ユーザーがどれだけそれらを気にしているかに比例するのではなく、画面に表示されていた時間に比例してフレームが得られます。まれなイベントでは、特定の時間範囲から対象を絞った抽出が必要です。
  3. デッド フレームを削除します。 フェード、カットの黒いフレーム、レンズ フレア、レンズの上に誰かの手。これらはノイズであり、注釈の作成に時間がかかります。
  4. 分割がビデオごとまたはタイムブロックごとに行われていることを確認します、シャッフルされたフレームによってではありません。
  5. 出所を記録します。 ソース ファイル、間隔、抽出日、形式、品質とデータセット。 6 か月以内に再作成または拡張する必要があり、画像から「どの間隔で使用したか」を再構成するのは不快です。

どれも難しいものではありません。アノテーション後に検出されるのではなく、抽出前に決定されるだけであり、これがすべての違いです。