Ada sejumlah video yang saya cari untuk memproses berbagai permainan video untuk mendeteksi berbagai "status" di dalamnya.
Game pertama yang saya tangani adalah edisi Super Street Fighter 4 .
Di dalamnya, saya ingin mendeteksi kapan layar karakter "vs" muncul. Berikut ini contoh dari satu bingkai video:
(diambil dari tanda ~ 10s dari video ini )
Jika saya dapat mendeteksi "vs", maka saya akan dapat mendeteksi bahwa bingkai video memang merupakan layar "vs", yang akan memungkinkan saya untuk mencari informasi lain (untuk saat ini, katakanlah saya akan menggunakannya untuk mendeteksi cap waktu di video tempat pertandingan akan dimulai).
Yang mengatakan, di sini adalah apa yang dapat diasumsikan tentang frame dari video yang akan saya proses (ini bukan satu-satunya video, ada ribuan, jika tidak puluhan atau ratusan ribu video, tetapi masalah skala dalam pemrosesan yang banyak video adalah domain yang sama sekali berbeda):
- Saya lebih suka (tapi tidak perlu) untuk memproses gambar dengan resolusi serendah mungkin dengan hasil yang dapat diandalkan (resolusi lebih rendah = waktu pemrosesan lebih cepat). Gambar di atas adalah 480 x 270 piksel (diambil dari video YouTube dengan
fmt
18 ) tetapi mereka mungkin datang dalam ukuran yang berbeda (saya mendapatkan video YouTube denganfmt
18 tetapi dengan dimensi 640 x 360 piksel). - Sebagian besar video akan diumpankan langsung
- Sebagian besar video akan memiliki rasio aspek 16: 9
- Latar belakang kemerahan akan dianimasikan, tetapi umumnya berada di dalam warna oranye-merah (itu api)
- Terkadang akan ada lencana yang keluar dan masuk di bagian bawah "vs" untuk menunjukkan versi (yang akan penting, tetapi tidak sekarang), yang mungkin mengaburkan "vs", seperti:
(diambil dari tanda ~ 3s dari video ini ; perhatikan juga bahwa di atas adalah resolusi 640 x 360 piksel)
- Ukuran dan posisi "vs" akan kira - kira sama (saya belum memverifikasi ini tetapi saya tahu itu tidak bergerak) secara proporsional dengan video umpan langsung lainnya
- Karakter akan dipilih dari kumpulan lebih dari 30 di setiap sisi (dengan kata lain, area bingkai akan bervariasi)
- Video-video tersebut biasanya akan berdurasi dua hingga empat menit, dengan kisaran antara 4.000 dan 6.00 frame. Namun, mungkin ada video yang lebih panjang (mungkin dua jam) yang memiliki berbagai gim lain dan live action. Video ini tidak sepenting itu, tetapi jika sebuah solusi memberi tahu saya di mana permainan tertentu muncul di keseluruhan video yang lebih besar, hebat
- Resolusi asli dari tangkapan adalah 720p, sehingga gambar dasar dari "vs" dapat diambil pada apa yang akan dianggap sebagai ukuran "asli".
Pada akhirnya, saya mencari kode untuk pipeline ini dalam. NET, tapi itu tidak super penting, pembuktian konsep lebih penting di sini dan juga pemahaman tentang teknik yang terlibat sehingga saya bisa menerjemahkan dan mengoptimalkannya untuk .NET serta untuk video lain dari game lain dalam genre yang sama (jika saya dapat memilih pembeda yang signifikan, dan video katakanlah, Ultimate Marvel vs Capcom 3 , Street Fighter x Tekken , BlazBlue: Continuum Shift , dll.).
Saya juga mencelupkan jari kaki saya di Mathematica dan memiliki versi rumah 8.0, jadi pembuktian konsep di lingkungan itu lebih dari diterima juga.