魚羊 發自 凹非寺
量子位 報道 | QbitAI
盆友,萬眾矚目的S10半決賽馬上要開始了,你鬧鐘定好了沒?
身在一個時不時就辦公室開黑,連團建都在聚眾玩健身環的編輯部裡,我雖然遊戲玩得菜,不妨礙直播看得及時啊~(手動狗頭)
畢竟要是錯過了這種瞬秒雙c的大場面,下回吹水插話buff不是又沒了?
不過直播追了一場又一場,遊戲理解沒啥長進,我卻發現自己可能有點“貓餅”。
明明大家都在關注比賽,我卻看到了點別的……
滿屏的AI技術。
圍觀S10,我卻被彈幕吸引了
事情是這樣的,那天我習慣性開啟虎牙,進入2020英雄聯盟全球總決賽直播間。
雙方在大龍跟前開始互毆,我剛準備關掉滿屏的彈幕認真圍觀一波團戰,卻發現這波彈幕有點不一樣:
大龍、英雄、大招……畫面裡的關鍵要素彈幕都完美繞開了。
並且,畫面還挺穩定流暢,在不關彈幕的情況下,比賽現場的細節都沒有被遮擋。
有了這個功能,不錯過選手神級操作的同時,盡情享受彈幕歡樂的氛圍不是夢,可比調低彈幕透明度效果好多了,奈斯啊!
諸君可能會覺得,這有啥,各大網站早已上線不擋人像的實時彈幕技術,這早就不是新鮮事兒了。
但作為一個經常和程式設計師們一起開“吐槽大會”的科技編輯,直覺告訴我,即使看上去技術不算新奇,功能上線顯得輕輕鬆鬆,使用者體驗滿足起來貌似“毫不費力”,背後對於每一個實現細節的推敲,也可能讓程式設計師偷偷又備了好幾瓶生髮液。
畢竟,如果只是在海量彈幕裡摳出人像,只要針對人體進行單類別語義分割就可以了,但在英雄聯盟的比賽裡,想要看清細節,涉及的目標物可就多得多了:英雄、大小龍、大招……
思路飄到此處,那就不妨直接去問問虎牙的技術大佬。
這一問,還真問出了點門道來:AI彈幕這事兒,看似簡單,可也著實費心思。
直播背後的黑科技
別的不說,S10直播前一天,虎牙的工程師們就經歷了腎上腺素飆升的一刻。
原本,程式碼已經在測試環境裡穩穩當當跑了一個星期,只等上線,但就在正式上線這前一天,工程師們發現,賽事方給到的資料流存在很多格式不一致的情況。
也就是說,直播中某些線路會因為資料流格式的問題,沒辦法呈現智慧彈幕的功能。
時間緊急,好在技術團隊通力合作,花了兩三個小時的時間找到了問題所在,這才沒耽誤功能正式上線。
但跟真正的難題比起來,這也只是一個“小插曲”。
虎牙AI基礎技術部總經理許佳介紹,實際上,智慧彈幕的實現主要涉及CV中的兩類技術:目標檢測和目標分割。
核心是針對當前畫面,識別出英雄在哪裡,放了什麼大招,並把它們的位置和輪廓資訊都準確地識別出來。
乍一看,都是成熟可借鑑的技術,但真要應用到S10的賽事直播中,並且呈現出理想的直播效果,還是讓虎牙的工程師們犯了難。
前文也提到,比起單純突出主播的智慧彈幕,遊戲畫面中的要素複雜得多,特別是團戰這樣的關鍵畫面中,英雄大小不一、各種技能光效都會對目標檢測、目標分割造成干擾。而且這在全球直播領域,並沒有可以參照的前例。
具體而言,難點可以歸結為為以下三點。
難點1:穩定性、實時性保障
首先,直播流是實時傳輸的資料, AI智慧彈幕從輸入到輸出就需要在30ms內處理完畢。同時,在穩定性上,一旦處理結果發生丟幀或前後結果不一致,在使用者看來畫面的抖動就會很明顯。
在如今上線的版本中,虎牙主要透過三點來應對這一挑戰。
模型精簡:綜合運用模型簡化,壓縮,推理最佳化等技術提高執行速度,同時確保準確性在95%以上。
智慧排程:儘可能並行,根據超時,模型計算量來分派任務。
利用時間序列的關聯性,透過文字,影象等多種資訊結合來最佳化結果。
難點2:Mask的準確預測
許佳還坦言,雖然基於虎牙在技術底層架構的紮實積累,技術團隊在3個星期內搞定了AI智慧彈幕的初版,但在上線之前,後續他們花費了更多的時間、精力在Mask預測的迭代、最佳化上。
這裡麻煩的點在於,LOL的英雄有很多不同的皮膚,皮膚不同又會導致英雄形態完全不同。
理論上,任意英雄的任意皮膚都有可能出現在比賽中。但從真實比賽場景中能獲得的原始影象資料又是很有限的。
因此,從訓練資料集的角度來說,在構建階段就需要充分考慮資料構造、資料均衡、資料增強等方法的設計。
這裡, 為了提高Mask預測的準確性,虎牙的工程師們創新地提出了背景生成技術, 透過虎牙之前積累的賽事資料,生成無英雄的背景影片,然後再透過背景相減的方法,來獲得魯棒mask分割。 在此基礎上,再結合目標檢測對英雄、大招等進行針對性處理, 這樣在準確性上帶來了很大的提升。
難點3:觀看體驗的最佳化
另外,在遊戲直播中,遊戲角色運動也有其獨特之處,比如單幀物件大多分佈零散,比如在快速移動的同時,會伴隨大量光影特效,計算其Mask後,Mask會產生非常快速的抖動,造成真實觀看體驗中的“眩暈感”。
為此,虎牙技術團隊在之前積累的光流演算法SelFlow技術基礎上,利用幀間資訊,對mask進行平滑, 透過前後幀融合的後處理方式,來平滑觀看體驗。此外,虎牙前端的同學,也在用mask將彈幕和畫面融合時,巧妙地加入邊緣羽化處理,也很大程度上優化了觀看體驗。
涉及的細節這麼多,想要兼顧產品呈現和使用者體驗,對於虎牙技術團隊而言挑戰不算小。
好在虎牙工程師們有足夠的熱情,發起這99分到100分的挑戰——他們之中有很多都是LOL死忠粉、遊戲硬核玩家。
許佳就說,虎牙電競賽事直播從s6就開始做了,現如今解決卡頓、畫質之類的“溫飽問題”,也有了很深的技術積累,對技術和產品團隊來說,自然而然就想更進一步。
虎牙的技術團隊是一個願意不斷積累、不斷挑戰自我的團隊,目標不僅僅是滿足使用者順暢、清晰看到直播的基礎需求,而是在此之上,還要給使用者帶來更好的觀看體驗。
AI智慧彈幕也正是因此誕生,虎牙工程師的目標是讓使用者在觀賽的道路上“從溫飽奔向小康”,以及在將來享受到更深層次的沉浸式體驗。
另一方面,虎牙在AI底層技術方面也早有動作。
像AI智慧彈幕和AI打點實時回放,及其相關的遊戲內容實時理解架構,基本技術思路都是將大任務化成小任務並行協作,化繁為簡。
而其基礎正是虎牙團隊的Leaf-AI服務。這是虎牙自研的Serverless服務架構。
基於此,任務背後多個小模型可以實現平行計算、按需伸縮,儘可能節約昂貴的GPU資源。在計算資源受限的情況下,還可以結合線上反饋及執行,進行無感知更新和效果切換,儘量把使用者體驗做到最佳。
用心做產品,觀眾老爺們自然認可,反饋回來的結果也給工程師們打了一劑強心針。
許佳透露,資料方面,在虎牙S10賽事的直播中,AI彈幕覆蓋率達到了98%,也就是說98%的觀眾都會在觀看比賽時開啟彈幕防遮擋,資料說明一切,工程師們的用心和努力得到了最好的回應。
而從感性的角度來說,有不少使用者都在評論、彈幕中反映AI智慧彈幕“有意思”。
電子競技孵化的黑科技
說起來,跟電子競技、遊戲相關的AI黑科技,從AI浪潮興起之初,就一路層出不窮。
出圈如DeepMind的星際AI AlphaStar,不僅碾壓99.8%人類對手,佔據各家科技媒體頭條,還正正經經登上了Nature。
《吃豆人》、《打磚塊》這樣的經典小遊戲,也被認為是孵化AGI(通用人工智慧)的絕佳訓練場。
有時候你也搞不清楚,這群科研人員到底是為了催生黑科技才沉迷遊戲,還是沉迷遊戲順手就寫成了論文(誤)。
或許也可以說,遊戲也是黑科技的第一生產力。參與電競,也是在推動生產力呀~(手動狗頭)
目前彈幕的數量還沒到頂峰時刻,半決賽以及總決賽現場肯定又是一波海量彈幕,這對於AI智慧彈幕而言也是一次精彩的挑戰。所以召喚師峽谷的盆友們,你們覺得今年LPL戰區能再拿個冠軍不?來嘮嘮看好哪支隊唄?
走過路過的盆友,也不妨一起來虎牙圍觀吐槽,感受一下電競氛圍呀~