Baru-baru ini, bersama dengan
replay minmax.gg/chickendinner
, kami merilis fitur baru yang menampilkan video yang disiarkan oleh PUBG Twitch streamer yang berpartisipasi. Untuk mengimplementasikannya, kami perlu mengenali stream Twitch dengan nama dalam game mereka, yang ternyata menjadi tugas yang agak menarik.
Fitur kedutan baru kami dalam aksi.Kemungkinan Anda bermain dalam pertandingan yang sama dengan streamer
Sebelum kami mulai mengembangkan fitur ini, kami ingin memastikan bahwa kemungkinan pertandingan di mana salah satu pemain bermain di Twitch cukup besar untuk membenarkan upaya kami. Kami dapat membuat perkiraan yang sangat kasar dengan melihat jumlah pemain aktif dan membandingkannya dengan jumlah siaran aktif.
Pada saat penulisan, permainan disiarkan di Twitch sekitar 2100 pengguna, dan di Steam ada sekitar 700 ribu pemain aktif di PUBG. Ini berarti bahwa pada saat itu streamer menyumbang sekitar 0,3% dari basis pemain.
Mempertimbangkan bahwa 100 orang paling sering memainkan pertandingan, probabilitas bahwa setidaknya satu dari mereka akan menjadi streamer adalah kebalikan dari probabilitas bahwa
tidak ada yang akan menjadi streamer. Karena probabilitas bahwa pemain bukan streamer adalah 99,7%, probabilitas bahwa tidak satu pun dari 100 pemain akan menjadi streamer adalah 0,997 dengan kekuatan 100, yaitu 0,74. Dengan kata lain, dalam pertandingan apa pun ada peluang sekitar 25 persen untuk menemukan setidaknya satu pemain streaming di Twitch.
Perlu dicatat bahwa kita dapat mengasumsikan di Twitch pergeseran kuat menuju wilayah Amerika Utara dibandingkan dengan pangkalan umum pemain PUBG, jadi jika Anda menonton pertandingan dari Amerika Utara, persentasenya mungkin akan jauh lebih tinggi.
Tebak namanya
Sekarang kita tahu bahwa ada peluang bagus untuk menemukan streamer di pertandingan apa pun, bagaimana kita tahu jika seorang pemain mengalirkan game di Twitch?
Untuk bonus tambahan, Anda dapat menghubungkan akun Twitch Anda ke permainan, tetapi, sayangnya, data ini tidak tersedia dari
PUBG API . Kami membutuhkan cara lain untuk mengikat nama pemain ke streamer di Twitch.
Mari kita lihat streamer hipotetis dengan nama akun
Mitch . Mitch secara teratur bermain di PUBG, tetapi saluran Twitch-nya belum mencapai tingkat pandangan yang dia impikan. Setelah refleksi, ia mengubah nama dalam game menjadi
TwitchMitch . Sekarang semua orang tahu bahwa Mitch streaming pada Twitch.
Prinsip ini sangat umum, kadang-kadang dengan variasi yang sedikit berbeda:
TTVMitch atau
Mitch_TV . Nama-nama tersebut dapat dideteksi secara program dan ditentukan dari mereka akun di Twitch, memungkinkan kami untuk menerima video untuk ditampilkan dalam pemutaran ulang pertandingan.
Pemetaan Manual
Pendekatan ini memberi kita titik referensi yang sangat baik, tetapi masih jauh dari cukup. Nama streamer paling populer tidak cocok dengan pola ini. Untuk menemukannya, Anda harus menautkan secara individu dari akun PUBG ke nama saluran Twitch mereka.
Untuk mengatasinya, kami mulai mencari streamer terpopuler di Twitch secara manual, dan merekam nama akun dalam gim yang terlihat di layar. Jika Anda beruntung, Anda akan dapat menangkap momen ketika pemain menunggu di lobi, di mana Anda dapat menemukan nama di beberapa tempat:
Namun, itu jauh lebih mungkin untuk menemukan pemain yang sudah bermain dalam pertandingan. Jika dia bermain dengan tim, maka namanya akan selalu terlihat di sudut kiri bawah:
Namun, perlu untuk menghitung yang mana dari nama-nama miliknya, karena itu tidak akan selalu sama. Cara termudah untuk melakukan ini adalah dengan melihat minimap di sudut kanan bawah, yang berpusat pada penanda pemain, ditandai dengan angka dan warna.
Pendekatan paling holistik adalah mempelajari bagian tengah bawah layar, di mana Anda dapat menemukan yang berikut:
Teks ini berisi nama akun, versi gim saat ini, 6 karakter terakhir dari pengidentifikasi pertandingan dan wilayah server. Perlu dipertimbangkan bahwa tidak selalu sebersih yang ditunjukkan di atas, karena biasanya bercampur dengan apa yang terjadi di belakangnya di layar. Teksnya kecil, yang artinya bisa kabur dan kurang dibaca ketika artefak video serius terjadi. Tetapi cepat atau lambat Anda akan menangkap bingkai yang cukup baik untuk membacanya.
Mungkin Anda sudah memikirkan apa yang kami sadari pada saat itu - ini adalah tugas yang ideal untuk solusi komputer otomatis!
Visi komputer
Dalam kondisi ideal, algoritma
OCR harus mengenali apa yang tertulis dalam teks di bawah ini. Setelah mencoba beberapa opsi, kami akhirnya memutuskan bahwa Google
Cloud Vision API memberikan hasil terbaik. Kita dapat membuat skrip yang melakukan hal berikut:
- Mendapat siaran PUBG langsung dan memotong bagian bawah tangkapan layar ( Twitch API menyediakan gambar pratinjau ukuran penuh, jadi kami tidak perlu mengambil tangkapan layar sendiri).
- Mengirim tangkapan layar ke Cloud Vision API dan mem-parsing nama pemain dari hasilnya.
- Verifikasi melalui PUBG API bahwa pemain itu ada, dan kemudian menyimpan akun Twitch dari akun PUBG di database kami.
Ini akan bekerja dengan baik, kecuali untuk satu detail kecil: Google meminta $ 1,5 untuk setiap seribu permintaan ke Cloud Vision API. Pada waktu tertentu, mungkin ada sekitar 2-3 ribu streamer aktif, sehingga bahkan satu skrip dijalankan akan menelan biaya hingga $ 4,5. Mengingat fakta bahwa kami cenderung mendapatkan banyak tangkapan layar dengan teks yang tidak dapat dibaca, Anda perlu menjalankan skrip beberapa kali untuk mendapatkan data dalam jumlah yang signifikan. Dengan kata lain, pendekatan seperti itu akan dengan cepat menjadi usaha yang sangat mahal. Untungnya, kami dapat mengatur permintaan untuk Cloud Vision sedikit lebih pintar. Kami dapat memanfaatkan fakta bahwa Google meminta pembayaran untuk permintaan individual, terlepas dari ukuran gambar. Artinya, kita dapat menghubungkan banyak gambar ke kisi:
Kemudian kami mengirim kotak gambar ini ke API dan melampirkan teks yang dihasilkan ke drive tape yang sesuai dengan area di mana teks itu ditemukan.
Ada batasan pada ukuran data yang dikirim oleh Google pada saat yang sama, jadi kami akan mengambil 300 gambar yang direkatkan untuk satu permintaan. Ini berarti bahwa sekarang kita dapat menjalankan skrip yang sama 300 kali dengan harga yang sama seperti sebelumnya, yang membuat pendekatan ini sangat layak dan efektif.
Isi celah terakhir
Skrip kami berfungsi selama beberapa minggu, dan sejauh ini kami telah mencetak 25 ribu perbandingan antara Twitch dan PUBG. Namun, skrip tidak dapat mengikat beberapa streamer, misalnya, mereka yang memiliki overlay mereka sendiri di atas teks di bagian bawah layar.
Kita harus mengikat streamer ini secara manual. Alih-alih melakukan ini sendiri, kami memutuskan untuk menambahkan fungsi yang memungkinkan pengunjung kami mengirim nama streamer yang tidak mereka temukan di database kami:
Kami akan senang untuk terus bereksperimen dengan metode untuk memperoleh pasangan akun seperti itu, dan bahkan lebih lagi kami ingin menemukan cara baru untuk menggunakan informasi yang ada. Harapkan artikel baru dari kami!