Bagaimana kami memenangkan hackathon internal dengan mempelajari skibidi, flossing, dan javascript

VK memiliki tradisi keren - hackathon internal, di mana hanya orang-orang dari VKontakte yang dapat berpartisipasi. Saya akan bercerita tentang hackathon atas nama tim, yang tahun ini memenangkan tempat pertama dan meninggal karena kelelahan secara keseluruhan, tetapi berhasil mencoba detektor gerak tarian untuk kamera cerita.



Nama saya Pavel , saya memimpin tim peneliti teratas di VKontakte dan dengan hangat memperlakukan hackathon: sebagai peserta (Persimpangan atau sejumlah deephack-s) dan baru-baru ini sebagai kurator (VK hackathon atau kasus VK di Persimpangan - omong-omong, ini adalah pertama kalinya, ketika sebuah perusahaan Rusia berpartisipasi). Terbuka untuk semua VK Hackathon, kami menghabiskan tahun keempat (terakhir kali kami naik ke Markas Besar Pertapaan), dan sebagian besar tim teknis kami berpartisipasi di dalamnya sebelum kami menetap di VK.

Hackathon internal memungkinkan tim itu sendiri untuk bebas bereksperimen di platform, menguji berbagai ide dan umumnya bersenang-senang. Perbedaan penting adalah bahwa solusi dapat secara signifikan lebih terintegrasi ke dalam VK, yang memberi kita kesempatan untuk mencapai prototipe yang menarik.

Hackathon berlangsung di Rumah Singer selama satu hari penuh - tepat di tengah minggu Kantor Pusat berubah menjadi gerakan tengah malam. Sangat lucu melihat bagaimana petugas kebersihan melihat sekeliling dengan terkejut di pagi hari - biasanya sebuah kantor kosong pada pukul 6 pagi tiba-tiba dipenuhi oleh orang-orang shaggy yang bergerak seperti zombie dan berteriak: "Lima jam lagi!" Atau ketika jam tiga pagi Anda pergi ke dapur dan baunya seperti di asrama universitas selama sesi: energetika, pizza dan panik. Ini, tentu saja, terjadi pada hari-hari biasa, tetapi sangat masif - jarang.

Tiga hackathon domestik sebelumnya terjadi di musim panas. Pada tahun 2019, kami memutuskan untuk tidak meremehkan dan menghabiskan musim dingin yang lain - dua hackathon jauh lebih baik daripada satu, karena ini adalah kesempatan besar untuk bereksperimen dan menerapkan gagasan yang tidak memiliki cukup waktu dalam ritme normal. Aturan juga telah berubah: sebelumnya, sebuah tim bisa memiliki maksimal tiga orang, dan tahun ini - empat, tetapi satu tidak menulis kode, tetapi mengkhususkan diri dalam hal lain. Anda bisa memanggil tim desainer, manajer produk, penguji, pemasar, dan orang lain. Secara total, 38 tim berpartisipasi dalam hackathon ini.

Drimtim (lebih tepatnya, salah satu dari 38)


Kami berkonspirasi dengan Denmark dan bersama-sama meyakinkan Yegor dan Tyoma untuk bergabung dengan tim. Model-model itu diharapkan ada di belakang kami, Yegor bertanggung jawab atas iOS, Tyoma - untuk produksi dan desain. Pengembangan mobile + desain + sedikit pembelajaran mesin dan backend adalah kunci kesuksesan di hackathon 2k19.

Bahkan tahun ini, ada pembagian ke trek yang sebelumnya tidak pernah: Media (di mana kami berpartisipasi), Komunikasi, Infrastruktur, Konten dan Hiburan. Kami memiliki pesaing yang kuat. Sebagai contoh, kami terus dimotivasi oleh desainer senior VK Ilya , yang datang ke kamar kami dan menunjukkan prototipe ide-ide timnya.

Ide


"Saya mengambil hadiah di hampir semua hackathon yang saya ikuti, dan saya mengharapkan hal yang sama dari dalam musim dingin ini." ( Dania yakin)

Ide kami (khususnya, Danina) awalnya seperti ini: Saya ingin menjelajahi topik generasi musik + mendapatkan semua yang ada di perangkat, jika tidak “terlalu backend”. Hackathon dimulai dengan brainstorming - mereka bertanya-tanya apa yang bisa dipikirkan. Membuat musik itu menarik, tetapi saya ingin membuatnya bergantung pada pengguna. Ada tombol? Mungkin menggambar di layar dan menghasilkan musik tergantung pada ini? Secara paralel, orang-orang dari tim Musik belajar cara menambahkan trek yang kita butuhkan. Tapi sepertinya masih belum cukup. Tim tetangga dengan ceria menemukan sesuatu di balik laptop mereka dan menyebabkan frustrasi.
- Dan bagaimana jika Anda membuat pengakuan gitar udara, seolah-olah Anda sedang bermain gitar, dan tergantung pada ini, memainkan suara gitar? ( Gelap )

Bingo! Itu ide perjuangan, dan itu keren untuk mengatur segalanya dengan kekuatan kita. Untuk pengenalan gerakan ada posenet , dan itu sangat ok (selain mobile-friendly). Figachim!



Solusi


Tugas utama adalah untuk mendapatkan kotak pada perangkat (itu harus nyata) dan belajar mengenali gerakan. Yegor mengambil porting, Tyoma - menemukan gerakan apa yang akan menarik untuk dimasukkan (hanya gitar yang membosankan), dan Dani dan saya - mengenali mereka. Tetapi ini membutuhkan data. Apa perbedaan antara PRO dan amatir? PRO memiliki cluster dengan GPU - ini adalah satu kali, dan dua - PRO akan mengumpulkan data untuk dirinya sendiri ketika dibutuhkan. Dania mengatur stand tempat data mentah tentang koordinat gambar yang dikenali ditulis dari kamera, dan kemudian menari! Malam itu kami belajar menari flossing, skibidi dan pipa .




Sebagai pendukung gerakan rekaman, kami menggunakan laptop yang berfungsi, yang pertama kali merekam wajah Dani (sebelum itu ia tidak menulis satu baris pun pada js) ketika ia melihat kesalahan js yang tidak dapat dipahami.



- Saya tidak mengerti, saya memiliki kesalahan tingkat: cetak menghilang dengan Python! ( Dania )

Tarian malam (secara harfiah)


Difilmkan pada malam hari selama berjam-jam gerakan terus-menerus di depan kamera. Kami merekamnya sendiri, dan juga menangkap para pengembang yang berkeliaran di lantai dan DIAMBIL KE DANCE. Ternyata tujuh kombinasi berbeda - sekarang kami perlu belajar bagaimana membedakan di antara mereka.




- Saya datang setiap tiga jam untuk memeriksa apakah mereka masih hidup. Pasha berteriak, "Kami punya poros!" - Dan Dania fleksil dari pasukan terakhir. Lalu semua orang menari pipa. Ketika Daniel kehabisan energi, Pasha membuka jendela dan berkata, "Anak-anak, kita perlu menyegarkan diri." ( Madinah )

Data dari angka tersebut adalah pra-diproses: mereka membuang kaki mereka, rata-rata kepala mereka, dan dipindahkan ke koordinat kutub relatif terhadap batang tubuh. Melatih detektor gerakan menggunakan catboost - cuplikan aliran data tiga detik dari model. Hingga malam ini, mereka tidak bekerja dengan perpustakaan - itu ternyata adalah pertempuran, dan di iOS Anda bisa mendorongnya.



Mereka mengajar klasifikasi multi-kelas, sementara satu kelas sama membosankannya - hanya terhuyung-huyung di depan kamera. Yang paling sulit adalah merekam gerakan "batu" - kami menggelengkan kepala tanpa pamrih sehingga setelah beberapa saat dia mulai berputar. Dan mereka mengulurkan tangan dengan "kambing", meskipun tidak ada gunanya - posenet hanya memiliki satu titik di seluruh sikat, ia tidak melihat jari-jarinya.



- Di suatu tempat pukul 3 pagi Pasha naik ke kantong tidur dan menghabiskan satu jam bergerak secara eksklusif di dalamnya, melompat seperti kanguru nyata. ( Madinah )

Sekitar pukul 8 pagi, sebuah krisis kecil menyusul kami - semuanya hancur dan tidak ada yang berhasil, tetapi kemudian semuanya tiba-tiba bekerja. Mengubah kedua model menjadi aplikasi ternyata menjadi tantangan terbesar - Yegor selesai merakit hanya lima menit sebelum batas waktu. Kami memberinya lantai:

- Setelah kami menemukan ide, semuanya berjalan dengan sangat baik dan produktif. Orang-orang melatih grid dan menari, dan saya mengacaukan kamera cerita PoseNet ke JavaScript langsung di browser. Tes awal berjalan dengan baik dan sangat cepat. Karena itu, ketika di pagi hari ternyata WebGL di WebView tiba-tiba macet ketika bekerja dengan tekstur untuk omong kosong dan tidak ada cara untuk menemukan solusi, saya hampir jatuh dalam keputusasaan. Tapi sudah terlambat untuk menyerah: kami bersemangat dengan gagasan itu. Oleh karena itu, dari upaya terakhir dan pada bank redbull terakhir, saat bepergian, kami menyeret model CoreML alternatif ke klien iOS dan mulai melacak pose-pose yang sudah ada secara asli - untuk selanjutnya memberikannya kepada model dengan tarian dan mendapatkan hasil di pintu keluar dari mereka. Bahkan, kami mengulangi pekerjaan itu lagi! Tantangan lain adalah model kedua, yang tiba-tiba mulai mengharapkan lebih dari seribu argumen untuk masuk! Xcode menghasilkan antarmuka untuk itu yang tidak realistis untuk menggunakan "head-on". Manfaat Objective-C tidak mengecewakan, dan solusi elegan ditemukan. ( Egor )

Pitching


Pada hari Jumat pukul 14, perlu untuk mengunggah video tentang proyek - beberapa tim tidak punya waktu, dan mereka didiskualifikasi. Dan pada pukul 14:40 kami memiliki titinada sebelum kurator trek yang terkait dengan produk. Kami memiliki orang-orang dari tim Video dan Musik, dan tampaknya mereka menyukai semua yang ada di lapangan. Di trek kami, kami mengambil tempat kedua (kami ingin yang pertama, karena kami memiliki proyek yang keren!) Dan berakhir di final (dua tim lulus dari trek kami).

- Tahun ini saya adalah kurator pertama hackathon internal. Saya akan mengatakan dengan terkendali: mengevaluasi pekerjaan itu sangat sulit. Tingkat semua tim tanpa kecuali entah bagaimana bersifat transendental. Fiturnya tidak boleh hanya teknologi, tidak hanya "dekat dengan produksi", bukan hanya "berpotensi bermanfaat bagi produk kami". Proyek yang menang harus memenuhi semua kriteria ini secara bersamaan. Sepertinya orang-orang melakukannya. ( Andrey )

Pitching terakhir adalah pukul 17:40. Pada saat ini, perlu untuk menyiapkan demo lain, sudah untuk seluruh Tim, dan juri berbeda - direktur teknis, direktur produk dan direktur pemasaran.

Pada pukul lima sore semuanya sudah berakhir - kami pulang untuk tidur, tidak tahu apa-apa tentang hasilnya.

Hasil akhirnya


Hasilnya diumumkan hanya pada hari Senin. Pertama, kami menghadiahkan pemenang trek (bukan kasus kami - izinkan saya mengingatkan Anda, kami yang kedua), kemudian para pemimpin audiensi (bukan kami), dan yang ketiga (dan ini juga bukan kami), yang kedua (lagi-lagi bukan kami) dan, akhirnya, kami.

Inilah beberapa proyek yang harus kami lawan:

Posisi Kedua - asisten suara yang responsif;
Posisi Ketiga - timeline kesalahan internal;
Audience Award adalah pengingat pertemuan obrolan yang akan datang.

"Ini adalah hackathon terbaik yang pernah saya hadiri." Ada lebih banyak drive daripada di Junction. ( Dania )

- Saya benar-benar menikmati bekerja dengan rekan-rekan dari departemen yang sama sekali berbeda - Saya belum pernah menyentuh pembelajaran mesin, bagi saya sepertinya semacam sihir, tetapi sekarang tidak. ( Egor )
- Sangat keren menjadi bagian dari tim yang sangat keren dengan proyek yang sangat keren. Siang hari saya berhasil menjadi desainer, videografer, insinyur suara, editor, musisi dan copywriter! Dan saya adalah satu-satunya yang bisa tidur. ( Gelap )

Kehidupan setelah hackathon


Sebagian besar proyek yang dikembangkan di hackathon tidak dapat dijual karena berbagai alasan: perubahan fokus, kompleksitas implementasi, sesuatu yang tidak terduga dalam implementasi. Hackathon batin tidak terkecuali.

Namun demikian, kami mendaftar proyek-proyek yang melihat cahaya hari:

  • dicintai oleh semua Vinci ;
  • pemeriksaan kompatibilitas pengguna , yang diluncurkan pada 14 Februari 2018;
  • poster indah untuk catatan pendek;
  • dan sejumlah fitur internal yang akan kami bicarakan dengan senang hati, tetapi tidak bisa :)

Source: https://habr.com/ru/post/id443902/


All Articles