我們如何透過學習skibidi、牙線和 JavaScript 贏得內部黑客馬拉松

VK 有一個很酷的傳統——內部黑客馬拉松,只有來自 VKontakte 的人才能參加。 我將代表今年獲得第一名並完全疲勞而死的團隊向您介紹黑客馬拉松,但他們成功地嘗試了故事攝影機的舞蹈動作探測器。

我們如何透過學習skibidi、牙線和 JavaScript 贏得內部黑客馬拉松

我的名字是 保羅,我領導著頂尖的VKontakte 研究團隊,對黑客馬拉松抱有熱情的態度:作為參與者(Junction 或一些Deephack)以及最近作為策展人(VK 黑客馬拉鬆或Junction 的VKontakte 案例- 順便說一句,這是第一次我參加了那裡的俄羅斯公司)。 我們第四年舉辦了向所有人開放的 VK 黑客馬拉松(這是我們最後一次登上冬宮總部),我們的技術團隊中有很大一部分人在加入 VK 之前就參加了該活動。

內部黑客馬拉松允許團隊本身對平台進行大量實驗,測試不同的想法,並且總體上會很有趣。 一個重要的區別是解決方案可以更多地整合到 VK 中,這使我們有機會實現有趣的原型。

黑客馬拉松全天在 Singer House 舉行 - 就在一周的中間,總部變成了午夜運動。 早上 6 點,清潔工們驚訝地環顧四周,這很有趣 - 早上 XNUMX 點通常空蕩蕩的辦公室突然擠滿了頭髮蓬亂的人,他們像殭屍一樣移動並大喊:“還剩五個小時!” 或者,當你凌晨三點走進廚房時,聞起來就像上課時大學宿舍的味道:能量飲料、披薩和恐慌。 當然,這種情況發生在平常的日子裡,但規模如此之大卻很少見。

之前的三場內部黑客馬拉松都在夏天舉行。 2019 年,我們決定不把時間浪費在瑣事上,還舉辦了一場冬季黑客馬拉松- 兩次黑客馬拉鬆比一次好得多,因為這是一個很酷的機會來實驗和實施一個想法,而在通常的節奏中沒有足夠的時間。 規則也改變了:以前一個團隊最多可以有三個人,但今年是四個人,但其中一個不寫程式碼,而是專攻其他事情。 可以邀請設計師、產品經理、測試人員、行銷人員和其他人員加入團隊。 共有38支隊伍參加了本次黑客松。

Dreamtim(更準確地說,是 38 個之一)

我們達成協議 達內 我們一起確信 葉戈爾 и 蒂瑪 加入團隊。 不出所料,模型由我們負責,Egor 負責 iOS,Tyoma 負責生產和設計。 行動開發+設計+一點機器學習和後端是2k19黑客馬拉鬆成功的關鍵。

即使在今年,也出現了以前不存在的細分:媒體(我們參與其中)、通訊、基礎設施、內容和娛樂。 我們有強大的競爭對手。 例如,VK的資深設計師不斷激勵著我們 伊利亞,他走進我們的房間並展示了他的團隊想法的原型。

想法

— 我參加的幾乎所有黑客馬拉松都獲得了獎項,我預計今年冬天的內部黑客馬拉鬆也能獲得同樣的獎項。 (丹崖 對自己有信心)

我們(特別是 Danina)的想法最初是這樣的:我們想要探索音樂生成的主題 + 將所有內容都放在設備上,否則就會「太後端」。 黑客馬拉松以腦力激盪開始——我們思考我們能想出什麼。 生成音樂很有趣,但我想讓它依賴用戶。 一些按鈕? 也許在螢幕上畫畫並根據它生成音樂? 同時,我們向音樂團隊的人員學習如何添加我們需要的曲目。 但看起來還是不太對勁。 鄰近的團隊正在他們的筆記型電腦上興致勃勃地工作,這引起了人們的沮喪。

— 如果您辨識出空氣吉他,就像您正在彈吉他一樣,並據此演奏吉他的聲音,該怎麼辦? (特馬)

答對了! 這個想法是激進的,我們有能力以一種很好的方式安排一切。 對於動作辨識有 姿態網,而且她很好(也適合行動裝置)。 讓我們假裝一下吧!

我們如何透過學習skibidi、牙線和 JavaScript 贏得內部黑客馬拉松 我們如何透過學習skibidi、牙線和 JavaScript 贏得內部黑客馬拉松

解決方法

主要任務是在設備上創建網格(必須是真實的)並學習識別運動。 Egor 開始移植,Tyoma 開始思考融入哪些動作會很有趣(只是一把吉他——無聊),而 Danya 和我開始認識它們。 但這需要數據。 專業人士和業餘愛好者有什麼不同? PRO 有一個帶有 GPU 的叢集 - 這是一件事,也是兩件事 - PRO 將在需要時為自己收集資料。 Danya 組織了一個展位,用相機記錄已識別人物的原始座標數據,然後 - 跳舞! 那天晚上我們學會了用牙線跳舞, 斯基比迪 и 杜查.

我們如何透過學習skibidi、牙線和 JavaScript 贏得內部黑客馬拉松
我們如何透過學習skibidi、牙線和 JavaScript 贏得內部黑客馬拉松

作為記錄動作的支架,我們使用了一台工作筆記型電腦,當 Dani 看到另一個難以理解的 JS 錯誤時,它首先記錄了 Dani 的臉(他以前沒有寫過一行 JS)。

我們如何透過學習skibidi、牙線和 JavaScript 贏得內部黑客馬拉松

——我不明白,我有一個等級錯誤:print 在 Python 中消失了! (丹崖)

夜舞(字面意思)

我們在夜間在鏡頭前拍攝了幾個小時的連續運動。 他們自己錄下來,還抓住了在地板上徘徊的開發人員並強迫他們跳舞。 我們得到了七種不同的組合 - 現在我們必須學會區分它們。

我們如何透過學習skibidi、牙線和 JavaScript 贏得內部黑客馬拉松 我們如何透過學習skibidi、牙線和 JavaScript 贏得內部黑客馬拉松
我們如何透過學習skibidi、牙線和 JavaScript 贏得內部黑客馬拉松 我們如何透過學習skibidi、牙線和 JavaScript 贏得內部黑客馬拉松

“我每三個小時就來一次,檢查一下這些人是否還活著。” 帕夏喊道:“我們有一個支點!” ——丹尼亞用盡全力彎曲。 然後大家就開始吹笛子了。 當丹尼爾耗盡體力時,帕夏打開窗戶說:“夥計們,我們需要梳洗一下。” (馬迪納)

圖中的數據經過預處理:腿被拋出,頭部被平均,並轉換為相對於軀幹的極坐標。 我們使用 catboost 訓練運動偵測器 - 使用模型資料流的三秒摘錄。 直到今晚我們還沒有使用過這個庫——結果它是一個戰鬥庫,你可以把它放在 iOS 中。

我們如何透過學習skibidi、牙線和 JavaScript 贏得內部黑客馬拉松

他們教授多類別分類,其中一堂課盡可能無聊——只是在鏡頭前閒逛。 最困難的是記錄「岩石」的運動——我們無私地搖頭,過了一會兒它開始旋轉。 他們伸出了一隻帶有「山羊」的手,儘管這是毫無意義的——posenet在整隻手上只有一個點,它看不到手指。

我們如何透過學習skibidi、牙線和 JavaScript 贏得內部黑客馬拉松 我們如何透過學習skibidi、牙線和 JavaScript 贏得內部黑客馬拉松

— 凌晨 3 點左右,帕夏爬進睡袋,在裡面獨自活動了一個小時,像真正的袋鼠一樣跳躍。 (馬迪納)

早上 8 點左右,我們遭遇了一場小危機——一切都壞了,一切都不起作用,但隨後一切突然開始自行運作。 事實證明,將這兩個模型安裝到應用程式中是最大的挑戰 - Egor 在截止日期前五分鐘完成了組裝。 讓我們請他發言:

— 當我們找到這個想法後,一切都進展順利且富有成效。 這些人訓練網格並跳舞,我直接在瀏覽器中用 JavaScript 將 PoseNet 連接到故事相機。 最初的測試運行效果很好,而且速度快得驚人。 因此,當早上發現WebView中的WebGL在處理一些廢話的紋理時意外崩潰並且沒有辦法找到解決方案時,我幾乎陷入了絕望。 但放棄已經太晚了:我們對這個想法很著迷。 因此,我們用盡了最後的力氣和最後一罐紅牛,將一個基於 CoreML 的替代模型拖入移動的 iOS 客戶端,並開始本地跟踪姿勢 - 以便將它們發送給帶有舞蹈的模型。並在輸出處得到一些結果。 本質上,我們再次重複了這項工作! 另一個挑戰是第二個模型,它突然開始需要一千多個參數作為輸入! Xcode 為其產生了一個接口,直接使用是不切實際的。 幸運的是,我對 Objective-C 的了解並沒有讓我失望,並且找到了一個優雅的解決方案。 (葉戈爾)

投球

週五下午 14 點,上傳有關該項目的影片的截止日期——一些團隊沒有及時上傳,被取消了資格。 14:40,我們向與產品相關的賽道策展人進行了推介。 我們有來自視頻和音樂團隊的人,他們似乎喜歡球場上的一切。 我們在賽道上獲得了第二名(我們想要第一,因為我們有一個很酷的項目!)並最終進入了決賽(我們賽道上的兩支隊伍獲得了資格)。

— 今年我第一次擔任內部黑客馬拉鬆的策展人。 我要克制地說:評估這項工作是極為困難的。 所有隊伍的水平無一例外都令人難以置信。 一個功能不應該僅僅在技術上先進,不僅僅是“接近生產”,不僅僅是“對我們的產品可能有用”。 獲獎項目必須同時滿足所有這些標準。 看來小伙子成功了。 (安德魯)

我們在下午 17:40 進行了最後一次推介。 這時候,需要再準備一個demo,這次是針對整個團隊的,而且評審團也不同了——技術總監、產品總監和行銷總監。

晚上五點,一切都結束了──我們回家睡覺,對結果一無所知。

結果終於出來了

結果週一才公佈。 首先,他們頒發了曲目的獲勝者(不是我們的情況 - 讓我提醒你,我們是第二名),然後是觀眾領袖投票(不是我們),然後是第三名(這也不是我們),第二(同樣,不是我們),最後是我們。

以下是我們必須競爭的項目:

第二名-響應式語音助理;
第三名-內部錯誤的時間線;
人民選擇獎是對即將舉行的聊天會議的提醒。

— 這是我參加過的最好的黑客馬拉松。 甚至比交會處的動力也多得多。 (丹崖)

— 我真的很喜歡與來自完全不同部門的同事一起工作 — 我以前從未接觸過機器學習,這對我來說似乎有某種魔力,但現在不是那樣了。 (葉戈爾)

— 成為如此酷的團隊的一員,參與如此酷的項目,真是太酷了。 有一天,我成為了設計師、攝影師、音響工程師、編輯、音樂家和文案撰稿人! 我也是唯一一個能睡著的人。 (特馬)

黑客松後的生活

大多數在黑客馬拉鬆上開發的專案都因各種原因而未能成功銷售:焦點的改變、實施的複雜性、實施過程中不可預見的情況。 內部黑客馬拉松也不例外。

儘管如此,我們還是列出了一些已經問世的項目:

  • 大家的最愛 達芬奇;
  • 使用者相容性檢查,於 14 年 2018 月 XNUMX 日推出;
  • красивые 海報 對於簡短的條目;
  • 以及一些我們很樂意談論的內部功能,但我們不能:)

我們如何透過學習skibidi、牙線和 JavaScript 贏得內部黑客馬拉松

來源: www.habr.com

添加評論