Com vam guanyar un hackathon intern aprenent skibidi, fil dental i javascript

VK té una tradició genial: un hackathon intern, en el qual només poden participar nois de VKontakte. Us parlaré de l'hackathon en nom de l'equip que va ocupar el primer lloc aquest any i va morir de cansament en la seva totalitat, però va aconseguir provar un detector de moviment de ball per a la càmera de la història.

Com vam guanyar un hackathon intern aprenent skibidi, fil dental i javascript

el meu nom Paul, lidero el millor equip de recerca de VKontakte i tinc una actitud càlida cap als hackatons: com a participant (Junction o una sèrie de deephacks) i recentment com a comissari (VK hackathon o VKontakte cas a Junction, per cert, aquesta era la primera vegada Hi vaig participar empresa russa). Celebrem per quart any la VK Hackathon, oberta a tothom, (última vegada que vam pujar a la Seu General de l'Ermita), i una part important del nostre equip tècnic hi va participar abans d'incorporar-nos a VK.

Un hackathon intern permet al propi equip experimentar molt amb la plataforma, provar diferents idees i, en general, divertir-se. Una diferència important és que les solucions es poden integrar molt més a VK, la qual cosa ens dóna l'oportunitat d'aconseguir prototips interessants.

L'hackathon té lloc a la Singer House durant tot el dia; just a mitjans de la setmana, la seu es converteix en un moviment de mitjanit. És curiós veure com els netejadors miren sorpresos al matí: una oficina normalment buida a les 6 del matí de sobte resulta que s'omple de gent peluda que es mou com zombis i crida: "Queden cinc hores!" O quan entres a la cuina a les tres de la matinada i durant les sessions fa olor de dormitoris universitaris: begudes energètiques, pizza i pànic. Això, per descomptat, passa un dia normal, però és rar a una escala tan gran.

A l'estiu van tenir lloc tres hackatons interns anteriors. L'any 2019, vam decidir no perdre el temps en petites coses i també fer un hackathon d'hivern: dos hackatons són molt millors que un, perquè aquesta és una bona oportunitat per experimentar i implementar una idea per a la qual no hi ha prou temps al ritme habitual. Les normes també han canviat: abans un equip podia tenir un màxim de tres persones, però enguany n'hi ha quatre, però un no escriu codi, sinó que s'especialitza en una altra cosa. Va ser possible convidar dissenyadors, gestors de producte, provadors, venedors i altres nois a l'equip. Un total de 38 equips van participar en aquest hackathon.

Dreamtim (més precisament, un dels 38)

Vam arribar a un acord amb Danei i junts ens hem convençut Egor и Tyoma uneix-te a l'equip. Com era d'esperar, els models anaven a càrrec nostre, Egor s'encarregava d'iOS, Tyoma s'encarregava de la producció i disseny. Desenvolupament mòbil + disseny + una mica d'aprenentatge automàtic i backend és la clau de l'èxit a l'hackathon 2k19.

Fins i tot aquest any va aparèixer una divisió en temes, que abans no existia: Mitjans (en els quals vam participar), Comunicacions, Infraestructura, Continguts i Entreteniment. Teníem competidors potents. Per exemple, estàvem motivats constantment pel dissenyador sènior de VK Ilya, que va entrar a la nostra sala i va mostrar prototips de la idea del seu equip.

Idea

— Vaig guanyar premis en gairebé tots els hackatons en què vaig participar, i m'esperava el mateix del hackathon intern d'aquest hivern. (Danya tenia confiança en si mateix)

La nostra idea (concretament la de Danina) va ser inicialment aquesta: volíem explorar el tema de la generació de música + tenir-ho tot al dispositiu, en cas contrari seria "massa backend". El hackathon va començar amb una pluja d'idees: vam pensar què podríem plantejar. Generar música és interessant, però vull que sigui dependent de l'usuari. Alguns botons? Potser dibuixar a la pantalla i generar música a partir d'ella? Al mateix temps, vam aprendre dels nois de l'equip de Música com afegir els temes que necessitàvem. Però encara no semblava del tot correcte. Els equips veïns estaven treballant alegrement en alguna cosa als seus ordinadors portàtils i causant frustració.

— Què passa si reconeixes la guitarra d'aire, com si toqués una guitarra i, en funció d'això, toques el so de la guitarra? (Tema)

Bingo! La idea és militant, i tenim el poder d'organitzar-ho tot d'una manera fantàstica. Per al reconeixement de moviment hi ha posenet, i està molt bé (també adaptada per a mòbils). Anem a fingir!

Com vam guanyar un hackathon intern aprenent skibidi, fil dental i javascript Com vam guanyar un hackathon intern aprenent skibidi, fil dental i javascript

decisió

Les tasques principals són crear una graella al dispositiu (ha de ser real) i aprendre a reconèixer els moviments. L'Egor va començar a portar, en Tyoma va començar a pensar quins moviments seria interessant incorporar (només una guitarra - avorrit), i la Danya i jo vam començar a reconèixer-los. Però això requereix dades. Quina diferència hi ha entre un PRO i un amateur? PRO té un clúster amb una GPU, això és una cosa, dues: PRO recopilarà dades per si mateix quan ho necessiti. Danya va organitzar un estand on es van gravar dades de coordenades brutes d'una figura reconeguda des d'una càmera i després - ballant! Aquella nit vam aprendre a ballar el fil dental, skibidi и dudtsa.

Com vam guanyar un hackathon intern aprenent skibidi, fil dental i javascript
Com vam guanyar un hackathon intern aprenent skibidi, fil dental i javascript

Com a suport per enregistrar moviments, vam utilitzar un ordinador portàtil de treball, que primer va gravar la cara de Dani (abans no havia escrit ni una línia en JS) quan va veure un altre error incomprensible de JS.

Com vam guanyar un hackathon intern aprenent skibidi, fil dental i javascript

— No entenc, tinc un error de nivell: la impressió ha desaparegut a Python! (Danya)

Ball de nit (literalment)

Vam gravar moltes hores de moviment continu davant la càmera a la nit. Ells mateixos el van gravar i també van atrapar els desenvolupadors que es van quedar per terra i els van OBLIGAR a BALLAR. Vam tenir set combinacions diferents, ara havíem d'aprendre a distingir-les.

Com vam guanyar un hackathon intern aprenent skibidi, fil dental i javascript Com vam guanyar un hackathon intern aprenent skibidi, fil dental i javascript
Com vam guanyar un hackathon intern aprenent skibidi, fil dental i javascript Com vam guanyar un hackathon intern aprenent skibidi, fil dental i javascript

"Vaig venir cada tres hores per comprovar si els nois estaven vius". Pasha va cridar: "Tenim un pivot!" - i Danya es va flexionar amb totes les seves forces. Després tothom va ballar la pipa. Quan Daniil es va quedar sense forces, Pasha va obrir la finestra i va dir: "Nois, hem de refrescar-nos". (Madina)

Les dades de la figura es van processar prèviament: es van llençar les cames, es va fer una mitjana del cap i es van convertir en coordenades polars relatives al tors. Hem entrenat el detector de moviment mitjançant catboost, utilitzant un extracte de tres segons del flux de dades del model. Fins aquesta nit no havíem treballat amb la biblioteca: va resultar ser una de combat, i la podeu posar a iOS.

Com vam guanyar un hackathon intern aprenent skibidi, fil dental i javascript

Van ensenyar classificació de diverses classes, amb una classe tan avorrida com sigui possible: només quedar-se davant de la càmera. El més difícil va ser gravar el moviment "rock": vam sacsejar el cap tan desinteressadament que al cap d'una estona va començar a girar. I van treure una mà amb una "cabra", tot i que això no tenia sentit: posenet només té un punt a tota la mà, no veu els dits.

Com vam guanyar un hackathon intern aprenent skibidi, fil dental i javascript Com vam guanyar un hackathon intern aprenent skibidi, fil dental i javascript

— Cap a les 3 de la matinada, Pasha es va enfilar a un sac de dormir i es va moure exclusivament en ell durant una hora, saltant com un cangur de debò. (Madina)

Cap a les 8 del matí ens va afectar una petita crisi: tot estava trencat i res no funcionava, però de sobte tot va començar a funcionar sol. Enroscar els dos models a l'aplicació va resultar ser el repte més gran: Egor va acabar el muntatge literalment cinc minuts abans de la data límit. Donem-li la paraula:

— Després de trobar la idea, tot va anar molt bé i productivament. Els nois van entrenar la graella i van ballar, i vaig connectar PoseNet a la càmera de la història en JavaScript directament al navegador. Les proves inicials van funcionar bé i van ser sorprenentment ràpides. Per tant, quan al matí va resultar que WebGL a WebView es va estavellar inesperadament quan es treballava amb textures per a algunes tonterias i no hi havia manera de trobar una solució, gairebé vaig caure en la desesperació. Però ja era massa tard per rendir-se: ens cremava la idea. Per tant, amb l'última de les nostres forces i amb l'última llauna de red bull, vam arrossegar un model alternatiu basat en CoreML al client d'iOS durant la marxa i vam començar a fer un seguiment de les posicions de manera nativa, per després enviar-les a la model amb balls. i obteniu algun resultat a la sortida. En essència, hem repetit la feina una altra vegada! Un altre repte va ser el segon model, que de sobte va començar a esperar més de mil arguments com a entrada! Xcode va generar una interfície que simplement seria poc realista d'utilitzar directament. Afortunadament, el meu coneixement de Objective-C no em va decepcionar i es va trobar una solució elegant. (Yegor)

Pitching

Divendres, a les 14 hores, hi havia una data límit per penjar un vídeo sobre el projecte: diversos equips no van arribar a temps i van ser desqualificats. I a les 14:40 vam tenir un pitch als comissaris de la pista relacionada amb el producte. Teníem nois de l'equip de Vídeo i Música, i semblava que els agradava tot el terreny. Vam agafar el segon lloc a la nostra pista (volíem primers, perquè tenim un projecte molt xulo!) i vam acabar a la final (dos equips de la nostra pista es van classificar).

— Enguany he estat el comissari d'un hackathon intern per primera vegada. Diré amb moderació: va ser extremadament difícil avaluar el treball. El nivell de tots els equips sense excepció era increïble. Una característica no hauria de ser només tecnològicament avançada, no només "a prop de la producció", no només "potencialment útil per als nostres productes". El projecte guanyador ha de complir tots aquests criteris simultàniament. Sembla que els nois ho van aconseguir. (Andrés)

Vam tenir el nostre llançament final a les 17:40 p.m. En aquest moment, era necessari preparar una altra demostració, aquesta vegada per a tot l'equip, i el jurat era diferent: el director tècnic, el director de producte i el director de màrqueting.

A les cinc de la nit tot s'havia acabat: vam anar a dormir a casa sense saber res dels resultats.

Els resultats són per fi

Els resultats es van anunciar només dilluns. Primer, van premiar els guanyadors de les pistes (no és el nostre cas; et recordo, vam ser segons), després els líders del públic voten (no nosaltres), i després el tercer (i aquest tampoc som nosaltres), el segon (de nou, no nosaltres) i, finalment, nosaltres.

Aquests són els projectes amb els quals havíem de competir:

2n lloc: assistent de veu sensible;
3r lloc - cronologia d'errors interns;
El premi People's Choice és un recordatori de les properes reunions de xat.

— Aquest és el millor hackathon en què he participat mai. Hi havia molt més cotxe que fins i tot a Junction. (Danya)

— M'ha agradat molt treballar amb companys d'un departament completament diferent: mai abans havia tocat l'aprenentatge automàtic, em semblava una mena de màgia, però ara no és així. (Yegor)

— Va ser molt bonic formar part d'un equip tan genial amb un projecte tan genial. En un dia vaig aconseguir ser dissenyador, videògraf, enginyer de so, editor, músic i redactor! També vaig ser l'únic que va aconseguir dormir. (Tema)

La vida després del hackató

La majoria de projectes desenvolupats en hackathons no arriben a les vendes per diferents motius: un canvi d'enfocament, complexitat d'implementació, quelcom imprevist en la implementació. Un hackathon intern no és una excepció.

No obstant això, enumerem els projectes que van veure la llum:

Com vam guanyar un hackathon intern aprenent skibidi, fil dental i javascript

Font: www.habr.com

Afegeix comentari