Skibidi, diş ipi kullanma ve javascript öğrenerek dahili bir hackathon'u nasıl kazandık?

VK'nın harika bir geleneği var - yalnızca VKontakte'den erkeklerin katılabileceği dahili bir hackathon. Bu yıl birinci olan ve tamamıyla yorgunluktan ölen ancak hikaye kamerası için dans hareketi dedektörünü denemeyi başaran ekip adına hackathon'u anlatacağım.

Skibidi, diş ipi kullanma ve javascript öğrenerek dahili bir hackathon'u nasıl kazandık?

Benim adım Paul, VKontakte'nin en iyi araştırma ekibine liderlik ediyorum ve hackathon'lara karşı sıcak bir tavrım var: katılımcı olarak (Junction veya bir dizi deephack) ve yakın zamanda küratör olarak (VK hackathon veya Junction'daki VKontakte vakası - bu arada, bu ilk seferdi) Oraya Rus şirketine katıldım). Dördüncü yıldır herkese açık olan VK Hackathon'u düzenliyoruz (en son Hermitage Genel Karargâhına tırmandığımızda) ve VK'ya katılmadan önce teknik ekibimizin önemli bir kısmı buna katıldı.

Dahili bir hackathon, ekibin platformda birçok deneme yapmasına, farklı fikirleri test etmesine ve genel olarak eğlenmesine olanak tanır. Önemli bir fark, çözümlerin VK'ya çok daha fazla entegre edilebilmesidir, bu da bize ilginç prototipler elde etme fırsatı verir.

Hackathon tüm gün boyunca Singer House'da yapılıyor; haftanın tam ortasında, Karargah gece yarısı hareketine dönüşüyor. Sabah temizlikçilerin şaşkınlıkla etrafa nasıl baktıklarını izlemek komik - genellikle sabah 6'da boş olan bir ofis, aniden zombi gibi hareket eden ve "Beş saat kaldı!" diye bağıran tüylü insanlarla doluyor. Ya da sabahın üçte mutfağa girdiğinizde seanslar sırasında üniversite yurtları gibi kokarsınız: enerji içecekleri, pizza ve panik. Bu elbette sıradan bir günde olur, ancak bu kadar büyük ölçekte nadirdir.

Yaz aylarında daha önce üç dahili hackathon gerçekleştirilmişti. 2019'da önemsiz şeylerle zaman kaybetmemeye ve ayrıca bir kış hackathonu düzenlemeye karar verdik - iki hackathon bir taneden çok daha iyidir, çünkü bu, normal ritimde yeterli zamanın olmadığı bir fikri denemek ve uygulamak için harika bir fırsat. Kurallar da değişti: Daha önce bir takımda en fazla üç kişi olabiliyordu, ancak bu yıl dört kişi var, ancak biri kod yazmıyor, başka bir konuda uzmanlaşıyor. Ekibe tasarımcıları, ürün yöneticilerini, test uzmanlarını, pazarlamacıları ve diğer kişileri davet etmek mümkündü. Bu hackathona toplam 38 takım katıldı.

Dreamtim (daha doğrusu 38'den biri)

ile anlaşmaya vardık Danei ve birlikte ikna ettik Yegor и Tyoma takıma katıl. Beklendiği gibi modeller bizden sorumluydu, Egor iOS'tan sorumluydu, Tyoma ise üretim ve tasarımdan sorumluydu. Mobil geliştirme + tasarım + biraz makine öğrenimi ve arka uç, 2k19 hackathon'da başarının anahtarıdır.

Bu yıl bile daha önce olmayan bir bölümlenme ortaya çıktı: Medya (katıldığımız yer), İletişim, Altyapı, İçerik ve Eğlence. Güçlü rakiplerimiz vardı. Örneğin VK'nın kıdemli tasarımcısı tarafından sürekli motive ediliyorduk. Ilyaodamıza geldi ve ekibinin fikrinin prototiplerini gösterdi.

Fikir

— Katıldığım hemen hemen tüm hackathonlarda ödüller aldım ve bu kış iç hackathon'dan da aynısını bekliyordum. (Danya kendine güveniyordu)

Bizim (özellikle Danina'nın) başlangıçtaki fikri şuydu: Müzik üretimi konusunu keşfetmek + her şeyin cihazda olmasını istedik, aksi takdirde "fazla arka uç" olurdu. Hackathon beyin fırtınasıyla başladı; ne bulabileceğimizi düşündük. Müzik üretmek ilginç ama bunu kullanıcıya bağımlı hale getirmek istiyorum. Bazı düğmeler mi? Belki ekrana çizim yapıp buna göre müzik üretebiliriz? Aynı zamanda Müzik ekibindeki adamlardan ihtiyacımız olan parçaları nasıl ekleyeceğimizi öğrendik. Ama yine de pek doğru görünmüyordu. Komşu ekipler dizüstü bilgisayarlarında neşeyle bir şeyler üzerinde çalışıyorlardı ve hayal kırıklığına neden oluyorlardı.

— Havalı gitarı sanki gitar çalıyormuş gibi tanırsanız ve buna göre gitarın sesini çalarsanız ne olur? (Tema)

Bingo! Fikir militandır ve her şeyi harika bir şekilde düzenleme gücüne sahibiz. Hareket tanıma için Poşenetve kendisi de gayet iyi (aynı zamanda mobil uyumlu). Hadi öyleymiş gibi yapalım!

Skibidi, diş ipi kullanma ve javascript öğrenerek dahili bir hackathon'u nasıl kazandık? Skibidi, diş ipi kullanma ve javascript öğrenerek dahili bir hackathon'u nasıl kazandık?

karar

Ana görevler, cihazda bir ızgara oluşturmak (gerçek olmalıdır) ve hareketleri tanımayı öğrenmektir. Egor taşımaya başladı, Tyoma hangi hareketleri birleştirmenin ilginç olacağını düşünmeye başladı (sadece bir gitar - sıkıcı) ve Danya ve ben onları tanımaya başladık. Ancak bu veri gerektirir. PRO ve amatör arasındaki fark nedir? PRO'nun GPU'lu bir kümesi var - bu bir şey, iki şey - PRO ihtiyaç duyduğunda kendisi için veri toplayacaktır. Danya, tanınmış bir figürün ham koordinat verilerinin bir kameradan kaydedildiği ve ardından dans ettiği bir stant düzenledi! O gece diş ipi kullanma dansı yapmayı öğrendik. kızak и dudtsa.

Skibidi, diş ipi kullanma ve javascript öğrenerek dahili bir hackathon'u nasıl kazandık?
Skibidi, diş ipi kullanma ve javascript öğrenerek dahili bir hackathon'u nasıl kazandık?

Hareketleri kaydetmek için bir stand olarak, başka bir anlaşılmaz JS hatası gördüğünde ilk olarak Dani'nin yüzünü kaydeden (daha önce JS'de tek bir satır yazmamıştı) bir iş dizüstü bilgisayarı kullandık.

Skibidi, diş ipi kullanma ve javascript öğrenerek dahili bir hackathon'u nasıl kazandık?

— Anlamıyorum, bir seviye hatası var: Python'da baskı kayboldu! (Danya)

Gece dansı (kelimenin tam anlamıyla)

Geceleri kamera önünde saatlerce aralıksız hareket halinde çekim yaptık. Bunu kendileri kaydettiler ve ayrıca yerde dolaşan geliştiricileri yakaladılar ve onları DANS etmeye ZORLADILAR. Yedi farklı kombinasyonumuz var; şimdi bunları birbirinden ayırmayı öğrenmemiz gerekiyordu.

Skibidi, diş ipi kullanma ve javascript öğrenerek dahili bir hackathon'u nasıl kazandık? Skibidi, diş ipi kullanma ve javascript öğrenerek dahili bir hackathon'u nasıl kazandık?
Skibidi, diş ipi kullanma ve javascript öğrenerek dahili bir hackathon'u nasıl kazandık? Skibidi, diş ipi kullanma ve javascript öğrenerek dahili bir hackathon'u nasıl kazandık?

"Her üç saatte bir adamların hayatta olup olmadığını kontrol etmeye geliyordum." Paşa bağırdı: "Bir pivotumuz var!" - ve Danya tüm gücüyle esniyordu. Daha sonra herkes kaval dansı yaptı. Daniil'in gücü tükenince Paşa pencereyi açtı ve şöyle dedi: "Arkadaşlar, tazelenmemiz gerekiyor." (Madina)

Şekildeki veriler önceden işlendi: bacaklar dışarı atıldı, başın ortalaması alındı ​​ve gövdeye göre kutupsal koordinatlara dönüştürüldü. Modelden gelen veri akışının üç saniyelik bir alıntısını kullanarak catboost kullanarak hareket dedektörünü eğittik. Bu geceye kadar kütüphaneyle çalışmamıştık - bunun bir savaş olduğu ortaya çıktı ve onu iOS'a koyabilirsiniz.

Skibidi, diş ipi kullanma ve javascript öğrenerek dahili bir hackathon'u nasıl kazandık?

Çok sınıflı sınıflandırma öğrettiler; bir sınıf mümkün olduğunca sıkıcıydı; sadece kamera önünde takılıp kalıyorlardı. En zor şey "kaya" hareketini kaydetmekti - başlarımızı o kadar özverili bir şekilde salladık ki bir süre sonra dönmeye başladı. Ve bu anlamsız olmasına rağmen "keçi" olan eli uzattılar - posenet'in tüm elinde sadece bir noktası var, parmakları görmüyor.

Skibidi, diş ipi kullanma ve javascript öğrenerek dahili bir hackathon'u nasıl kazandık? Skibidi, diş ipi kullanma ve javascript öğrenerek dahili bir hackathon'u nasıl kazandık?

— Sabah saat 3 civarında Paşa bir uyku tulumuna tırmandı ve gerçek bir kanguru gibi zıplayarak bir saat boyunca sadece onun içinde hareket etti. (Madina)

Sabah 8 civarında küçük bir kriz yaşadık; her şey bozuldu ve hiçbir şey çalışmıyordu, ama sonra her şey birdenbire kendi kendine çalışmaya başladı. Her iki modeli de uygulamaya vidalamak en büyük zorluk haline geldi - Egor, montajı son teslim tarihinden tam anlamıyla beş dakika önce tamamladı. Ona söz verelim:

— Fikri bulduktan sonra her şey çok iyi ve verimli gitti. Çocuklar ızgarayı eğitti ve dans etti ve ben PoseNet'i doğrudan tarayıcıdaki JavaScript'te hikaye kamerasına ekledim. İlk test çalışmaları iyi çalıştı ve şaşırtıcı derecede hızlıydı. Bu nedenle, sabah WebView'daki WebGL'nin bazı saçmalıklar için dokularla çalışırken beklenmedik bir şekilde çöktüğü ve bir çözüm bulmanın bir yolu olmadığı ortaya çıktığında neredeyse umutsuzluğa kapıldım. Ama vazgeçmek için artık çok geçti; bu fikirle yanıp tutuşuyorduk. Bu nedenle, son gücümüzle ve son red bull konservesiyle, CoreML tabanlı alternatif bir modeli hareket halindeyken iOS istemcisine sürükledik ve pozları yerel olarak izlemeye başladık - daha sonra bunları danslarla modele göndermek için ve çıktıda bir sonuç elde edin. Aslında işi tekrar tekrar tekrarladık! Bir diğer zorluk ise birdenbire girdi olarak binden fazla argüman beklemeye başlayan ikinci modeldi! Xcode, bunun için doğrudan kullanılması gerçekçi olmayan bir arayüz oluşturdu. Neyse ki Objective-C bilgim beni yarı yolda bırakmadı ve şık bir çözüm bulundu. (Yegor)

Satış konuşması

Cuma günü saat 14'te projeyle ilgili bir videonun yüklenmesi için son tarih vardı; birçok ekip bunu zamanında yapamadı ve diskalifiye edildi. Saat 14:40'da ise parça küratörlerine ürünle ilgili bir sunum yaptık. Video ve Müzik ekibinden adamlarımız vardı ve sahadaki her şeyden memnun görünüyorlardı. Kendi pistimizde ikinci olduk (birinci olmak istedik çünkü çok güzel bir projemiz var!) ve finale çıktık (bizim pistten iki takım katılmaya hak kazandı).

— Bu yıl ilk kez bir dahili hackathon'un küratörlüğünü yaptım. Kısıtlılıkla söyleyeceğim: Çalışmayı değerlendirmek son derece zordu. İstisnasız tüm takımların seviyesi inanılmayacak kadar yüksekti. Bir özellik yalnızca teknolojik olarak gelişmiş olmamalı, yalnızca "üretime yakın" olmamalı, yalnızca "ürünlerimiz için potansiyel olarak yararlı" olmamalıdır. Kazanan projenin tüm bu kriterleri aynı anda karşılaması gerekiyor. Görünüşe göre adamlar başarılı oldu. (Andrew)

Son atışımızı saat 17'ta yaptık. Bu zamana kadar, bu sefer tüm Ekip için başka bir demo hazırlamak gerekiyordu ve jüri farklıydı - teknik direktör, ürün direktörü ve pazarlama direktörü.

Akşam saat beşte her şey bitti; sonuçlar hakkında hiçbir şey bilmeden eve yatmaya gittik.

Sonuçlar nihayet

Sonuçlar ancak Pazartesi günü açıklandı. İlk önce pistlerin kazananlarını ödüllendirdiler (bizim durumumuz değil - hatırlatmama izin verin, ikinci olduk), ardından seyircilerin liderleri oy kullandı (biz değil) ve ardından üçüncüyü (ve bu da biz değiliz), ikincisi (yine biz değil) ve son olarak biz.

İşte yarışmak zorunda kaldığımız projeler:

2. sıra - duyarlı ses asistanı;
3. sıra - dahili hataların zaman çizelgesi;
Halkın Seçimi Ödülü, yaklaşan sohbet toplantılarının bir hatırlatıcısıdır.

— Bu şimdiye kadar katıldığım en iyi hackathon. Junction'dakinden çok daha fazla trafik vardı. (Danya)

— Tamamen farklı bir departmandaki meslektaşlarımla çalışmaktan gerçekten keyif aldım - Daha önce makine öğrenimine hiç dokunmamıştım, bana bir tür sihir gibi geldi ama şimdi öyle değil. (Yegor)

— Böylesine harika bir projeyle, böylesine harika bir ekibin parçası olmak çok güzeldi. Bir günde tasarımcı, kameraman, ses mühendisi, editör, müzisyen ve metin yazarı olmayı başardım! Ayrıca uyumayı başaran tek kişi bendim. (Tema)

Hackathon'dan sonraki hayat

Hackathon'larda geliştirilen projelerin çoğu çeşitli nedenlerle satışa çıkmıyor: odak değişikliği, uygulamanın karmaşıklığı, uygulamada öngörülemeyen bir şey. Dahili bir hackathon bir istisna değildir.

Yine de gün ışığına çıkan projeleri sıralıyoruz:

  • herkesin favorisi Vinci;
  • kullanıcı uyumluluk kontrolü14 Şubat 2018'de lansmanı yapılan;
  • красивые posterler kısa girişler için;
  • ve hakkında konuşmaktan memnuniyet duyacağımız ancak konuşamadığımız bir dizi dahili özellik :)

Skibidi, diş ipi kullanma ve javascript öğrenerek dahili bir hackathon'u nasıl kazandık?

Kaynak: habr.com

Yorum ekle