ビデオのさまざまな「状態」を検出するために、さまざまなビデオゲームを処理しようとしているビデオがいくつかあります。
私が取り組んでいる最初のゲームは、スーパーストリートファイター4のエディションです。
その中で、「vs」のキャラクター画面がいつ表示されるのかを検知したいと思います。ビデオの1フレームの例を次に示します。
「vs」を検出できた場合、ビデオのフレームが「vs」画面であることを検出できるため、他の情報を探すことができます(今のところ、これを使用して試合が始まる直前の動画のタイムスタンプを検出します)。
とは言っても、ここで私が処理するビデオのフレームについて想定できることはこれです(これが唯一のビデオではなく、数万または数十万とは言わないまでも数千のビデオがありますが、処理におけるスケールの問題)多くのビデオは完全に異なるドメインです):
- 可能な限り最低解像度の画像を処理して、信頼性の高い結果を得ることが望ましい(低解像度=処理時間の高速化)。上の画像は480 x 270ピクセル(18のYouTubeビデオ
fmt
から取得)ですが、サイズが異なる場合があります(fmt
18のYouTubeビデオですが、サイズは640 x 360ピクセルです)。 - ほとんどの動画は直接フィードされます
- ほとんどの動画は16:9のアスペクト比になります
- 赤みがかった背景はアニメーション化されますが、一般的にはそのオレンジ赤の色(炎)内にあります
- バージョンを示すために、「vs」の下部にフェードイン/アウトバッジが表示される場合があります(これは重要ですが、現時点では重要ではありません)。
(このビデオの〜3sマークから取得。また、上記は640 x 360ピクセルの解像度であることに注意してください)
- 「vs」のサイズと位置は、他の直接フィード動画に比例してほぼ同じになります(まだ確認していませんが、動かないことはわかっています)。
- キャラクターは、両側に30を超えるプールから選択されます(つまり、フレームの領域は異なります)。
- ビデオの長さは通常2〜4分で、4,000〜6,00フレームです。ただし、他のさまざまなゲームやライブアクションがカットされた長いビデオ(おそらく2時間)があるかもしれません。これらのビデオはそれほど重要ではありませんが、解決策から、特定のゲームが全体の大きなビデオのどこにポップアップ表示されるかがわかったら、すばらしいです。
- キャプチャのネイティブ解像度は720pなので、「vs」のベースラインイメージは、「ネイティブ」サイズと見なされるサイズで取得できます。
最終的に、私はコードに.NETで、このパイプラインを探していますが、それはありませんスーパー重要なのは、概念実証のは、私が翻訳し、.NETのためにそれを最適化することができるように含まれる技術の理解だけでなく、ここではより重要です同じジャンルの他のゲームの他のビデオ(もし私が重要な弁別器を見つけることができれば、そしてUltimate Marvel対Capcom 3、Street Fighter x Tekken、BlazBlue:Continuum Shiftなど)のビデオも同様です。
私もMathematicaに足を踏み入れており、ホームバージョン8.0を持っているので、その環境での概念実証も歓迎されます。