B站S賽直播中的關鍵事件識別與應用
1. 前言
在電子競技的世界里,沒有哪個游戲像《英雄聯(lián)盟》(League of Legends,簡稱LOL)那樣,擁有如此龐大的玩家數(shù)量和深遠的影響力。
自2009年由Riot Games推出以來,這款多人在線戰(zhàn)斗競技場(MOBA)游戲迅速風靡全球,不僅成為了電子競技的標桿,更催生了一個龐大的產(chǎn)業(yè)生態(tài)?!队⑿勐?lián)盟》以其獨特的英雄角色、豐富的戰(zhàn)術策略和激烈的團隊對抗,吸引了無數(shù)玩家投身于召喚師峽谷的戰(zhàn)斗之中。
2. 背景
隨著電子競技的蓬勃發(fā)展,賽事的組織和觀賞性成為了衡量一個游戲成功與否的重要標準?!队⑿勐?lián)盟》每年舉辦的各種賽事,如LPL、LCK、LCS等區(qū)域聯(lián)賽,以及MSI和S賽等國際大賽,都是LOL電子競技領域中的重要盛事。
在這樣的背景下,賽事直播的自動化和智能化成為了提升B站賽事觀看體驗和熱度的關鍵。其中,游戲識別技術是我們賽事智能化的核心之一,它涉及到圖像處理、模式識別、深度學習等多個領域,旨在實時準確地從游戲畫面中提取關鍵事件信息,如英雄選擇、擊殺、局內(nèi)數(shù)據(jù)等,進而為賽事直播、數(shù)據(jù)分析和觀眾互動提供支持。
圖1 觀眾點擊進度條圖標或高能列表可跳轉(zhuǎn)到精彩瞬間
圖2 觀眾將鼠標停留在英雄頭像上查看選手實時數(shù)據(jù)
3. 游戲識別
9月25日,備受矚目的S14全球總決賽在歐洲盛大開啟。對于長期觀看B站賽事直播的觀眾們來說,通過點擊進度條上的高能點來重溫比賽的精彩瞬間已經(jīng)成為一種習慣。
追溯到2021年10月,B站的官方賽事直播間就已推出了自主研發(fā)的游戲識別系統(tǒng),這一創(chuàng)新功能為B站的游戲直播帶來了有趣的高能打點交互體驗。此后,這一系統(tǒng)在B站LOL賽事直播中得到了廣泛應用,除了S賽,還成功支持了包括LPL聯(lián)賽、SMI、沙特杯等多項頂級賽事的直播。
我們的高能打點功能也不斷推陳出新,旨在讓每一位觀眾都能以全新的視角享受比賽,捕捉每一個激動人心的瞬間。
接下來,我們將介紹B站在LOL賽事直播中游戲識別技術的應用和發(fā)展,希望能夠為電子競技愛好者、賽事組織者以及技術開發(fā)者提供有價值的見解和參考。
圖3 比賽直播畫面截圖
如圖3所示,賽事直播視頻信息相當密集,它包含了多種模態(tài)的數(shù)據(jù),如文字、圖標、語音等。這些信息以不同的形式呈現(xiàn),例如實時比分、英雄信息、經(jīng)濟情況、擊殺事件播報等。
這些數(shù)據(jù)靜態(tài)呈現(xiàn)在直播畫面中,為了能以互動的形式展現(xiàn)給觀眾,提高觀賽沉浸感,我們首先要提取這些關鍵信息,通過算法對直播畫面進行分析,識別出畫面中的關鍵元素,并理解它們之間的相互關系。
對此,我們基于現(xiàn)有的AI技術開發(fā)了一套游戲識別系統(tǒng),通過文字識別提取畫面中的文字信息、通過目標檢測定位關鍵圖標、通過目標分類確定事件類型,并將這三種技術有效地串聯(lián)起來,形成一套完整的技術鏈路。
圖4游戲識別pipeline
最終我們將分散的信息整合起來,生成一個連貫的賽事敘事,為觀眾提供更加全面的比賽視角。借助文字識別、目標檢測、分類等技術手段,我們完成了一套如圖4所示的從信息提取到信息分析,再到信息整合的多模態(tài)識別鏈路,最后將高能點呈現(xiàn)在時移進度條中,并為觀眾提供互動功能。
3.1. 文字識別
光學字符識別(OCR)作為一項成熟的AI技術,在計算機視覺領域有著廣泛的應用。LOL賽事直播畫面中包含著大量的文字信息,如圖5、圖6,畫面頂部區(qū)域顯示了紅藍戰(zhàn)隊名稱,游戲時間、擊殺比、經(jīng)濟情況,中間區(qū)域則會在出現(xiàn)擊殺等事件時以文字的形式播報具體的事件內(nèi)容。
圖5 頂部區(qū)域局內(nèi)數(shù)據(jù)
圖6 中間區(qū)域的事件播報:從上到下分別為擊殺煉金龍,雙殺,擊殺男爵
結(jié)合文字識別及特定的規(guī)則,我們準確從頂部區(qū)域提取出了游戲時間、戰(zhàn)隊名稱等9個字段,以及中間區(qū)域的事件字段。通過這兩塊信息,我們將其轉(zhuǎn)換為“游戲開始”、“第一滴血”、“三殺”、“四殺”、“五殺”、“擊殺遠古生物”等高能點,如圖7所示。
圖7 進度條中的高能點
3.1.1. 訓練數(shù)據(jù)合成及模型微調(diào)
雖然開源的OCR模型可以兼顧大部分字體及場景,但不能保證能夠完全適用于LOL游戲畫面中的文本場景,因此常出現(xiàn)由模型的泛化能力問題導致的識別精度下降,而整個游戲識別鏈路中的抽幀環(huán)節(jié)會放大這一缺陷,因此我們需要盡可能提高識別的準確率。
游戲文字識別是一個很典型的OCR垂類應用場景,要提高識別精度,自然免不了在該場景下的數(shù)據(jù)合成及訓練。對此我們分析了頂部區(qū)域和中間區(qū)域的組成方式,整理出了文字對應的字體、顏色,以及可能出現(xiàn)的單詞,并將它們和游戲畫面的背景組合起來,實現(xiàn)了對真實數(shù)據(jù)的模擬。
最終,我們基于上萬條合成數(shù)據(jù),完成了針對游戲中的文字識別的微調(diào)訓練,文字識別準確率從90%提升至99%,而較小的模型復雜度也能讓其在T4 GPU上達到33ms的推理速度。
3.1.2. 識別結(jié)果的結(jié)構(gòu)化處理
文字識別精度提高之后,我們面臨的另一個挑戰(zhàn)是:模型只能提供識別結(jié)果,但無法將它們和目標字段精準匹配。例如,當我們得到一個識別結(jié)果“42:14”時,系統(tǒng)并不知道其對應的字段是比賽時間。此時,需要對文字識別結(jié)果做結(jié)構(gòu)化處理,來確保將文字信息順利流轉(zhuǎn)到后續(xù)模塊。
我們了解到,官方直播畫面中的文字布局遵循嚴格的規(guī)范,有一套固定的模板?;诖?,我們深入分析了賽事視頻畫面中各個字段的位置,掌握了字段間的相對位置關系,并據(jù)此開發(fā)了一套專門用于區(qū)分不同字段的識別規(guī)則。
最終,我們不僅能夠識別出畫面中的文本內(nèi)容,還能通過結(jié)合文本內(nèi)容和文本位置,準確判斷出當前畫面中的高能事件。這一創(chuàng)新的方法極大地提高了系統(tǒng)對游戲畫面中關鍵信息的理解和處理能力,為后續(xù)的模塊提供了更加準確和豐富的數(shù)據(jù)支持。
3.2. 英雄識別
單獨依靠特定區(qū)域的文字識別結(jié)果來判斷高能點,有時會出現(xiàn)漏檢誤檢情況,如圖8所示,在局內(nèi)回放過程中出現(xiàn)高能事件時,畫面中間同樣會以文字的形式進行播報并被文字識別模塊識別出來,最終導致同一高能事件的重復打點,因此需要聯(lián)合其他的識別信息做近一步的判定。對此,我們在系統(tǒng)中引入了英雄識別模塊來解決這個問題。
圖8 高能事件回放影響文字識別
對于經(jīng)常觀看LOL比賽直播的觀眾來說,一個熟悉的場景是:當發(fā)生英雄擊殺或擊敗遠古生物時,畫面右下角會顯示擊殺方和被擊殺方的頭像圖標,如圖9所示。利用這一視覺特征,我們利用自主研發(fā)的英雄識別模型,在特定區(qū)域內(nèi)首先檢測出雙方在本局比賽中使用的英雄。接著,我們識別并分析擊殺事件區(qū)域中的擊殺關系,最終結(jié)合文字識別模塊的事件識別結(jié)果,以確定高能事件。
圖9 英雄識別區(qū)域:局內(nèi)使用英雄(紅框)及擊殺事件(綠框)
3.2.1. 英雄識別訓練數(shù)據(jù)的構(gòu)造
正如文字識別一樣,英雄識別模型的訓練同樣面臨著真實數(shù)據(jù)匱乏的挑戰(zhàn)。我們能夠獲取的數(shù)據(jù)往往僅限于官方提供的原始CG頭像,這與實際游戲直播中的情況大相徑庭。
在直播中,英雄頭像會受到多種復雜因素的影響,例如畫面分辨率的變化以及視頻流傳輸過程中的失真,這些都可能對模型的識別準確性造成干擾。此外,英雄頭像的顯示效果還會受到游戲背景畫面不同區(qū)域的影響,這種變化性進一步增加了識別的難度。
為了應對這些挑戰(zhàn),我們精心構(gòu)建了一個包含多種復雜場景的訓練數(shù)據(jù)集,特別是加入了模擬低分辨率、光影變化、特效覆蓋等情況的圖片,以增強模型的魯棒性。此外,我們還運用了復雜的數(shù)據(jù)增強技術,通過旋轉(zhuǎn)、縮放、模糊處理等方法來豐富數(shù)據(jù)集,確保模型能夠適應多樣化的直播場景。
通過精心設計的數(shù)據(jù)構(gòu)造和增強策略顯著提升了英雄識別模型在復雜環(huán)境下的識別效果,實現(xiàn)了97%的識別準確率。同時,我們對模型結(jié)構(gòu)進行了優(yōu)化,確保其在T4 GPU上的推理速度最快能夠達到8ms。通過這些改進,我們的模型不僅在準確性上取得了突破,而且在性能上也滿足了實時處理的需求。
3.2.2. 識別結(jié)果與時序信息的結(jié)合
在英雄識別模塊的基礎上,我們進一步增強了系統(tǒng)的功能,引入了擊殺事件的時序信息分析。
具體而言,一旦我們的系統(tǒng)檢測到擊殺方與被擊殺方的圖標組合,我們便會記錄它們的出現(xiàn)時間,并與文字識別模塊捕獲的事件時間點進行比對,以確定它們是否屬于同一事件。如果圖標和相關文字在短時間內(nèi)連續(xù)出現(xiàn),我們便能夠較為準確地判斷這是同一高能事件,從而避免重復標記的問題。
此外,我們的系統(tǒng)還集成了事件去重功能。當系統(tǒng)在短時間內(nèi)多次檢測到相似的事件組合時,它會自動進行篩選,僅保留最具代表性的時間點作為該高能時刻的標記。這一功能的加入,不僅提高了事件識別的準確性,也確保了直播中高能時刻的精準捕捉和呈現(xiàn)。通過這些創(chuàng)新的技術手段,我們的系統(tǒng)在處理復雜多變的直播場景時,展現(xiàn)出了更高的效率和可靠性。
3.3. 熱區(qū)識別
我們的游戲識別系統(tǒng)不僅提供了高能打點功能,在比賽過程中,我們還希望觀眾能夠隨時查看每位選手及隊伍的實況數(shù)據(jù),實時掌握賽事局勢,從而更好地參與和體驗觀賽樂趣。
我們在視頻流中加入了SEI(Supplemental Enhancement Information)標記,用于傳遞當前畫面中的熱區(qū)識別數(shù)據(jù),其在前端表現(xiàn)為:系統(tǒng)根據(jù)用戶鼠標停留位置實時渲染懸浮數(shù)據(jù)框,動態(tài)展示該區(qū)域的詳細數(shù)據(jù),從而實現(xiàn)實時數(shù)據(jù)的可視化反饋。
如圖10、圖11紅框所示,一旦熱區(qū)數(shù)據(jù)展示功能被觸發(fā),它將展示選手的個人數(shù)據(jù)以及各隊伍的經(jīng)濟圖表、英雄發(fā)育情況和符文天賦等關鍵信息。
圖10 觸發(fā)選手數(shù)據(jù)懸浮展現(xiàn)
圖11 觸發(fā)數(shù)據(jù)面板懸浮展現(xiàn)
3.3.1. 熱區(qū)智能識別與交互優(yōu)化
圖12 觸發(fā)區(qū)域:左側(cè)選手欄、右側(cè)選手欄、下方英雄欄
在圖12所示的畫面中,左側(cè)選手欄、右側(cè)選手欄和下方英雄欄這三個熱點區(qū)域被設計為觀眾可以通過鼠標懸停來觸發(fā)局內(nèi)選手數(shù)據(jù)及隊伍數(shù)據(jù)的展示。
然而,一個潛在的問題是,如果僅依據(jù)鼠標在預設熱點區(qū)域的停留來判斷,可能會發(fā)生誤觸發(fā)的情況。這是因為在直播過程中,這些區(qū)域并非始終可見,當畫面中出現(xiàn)高能回放、插播廣告等場景時,預設的熱點區(qū)域可能會被其他內(nèi)容覆蓋,這時若觸發(fā)數(shù)據(jù)展示功能,將嚴重影響用戶的交互體驗。
為了解決這一問題,我們采用了一種“驗證預設熱點區(qū)域是否為真實熱點區(qū)域”的方法。具體來說,我們利用自研的目標檢測模型來識別當前直播畫面中可能存在的熱點區(qū)域,并將這些檢測出的熱點區(qū)域與預設的熱點區(qū)域進行IOU(交并比)計算。基于IOU的計算結(jié)果,我們決定是否抑制或激活懸浮展示功能。實際效果證明了這種方法的有效性:采用熱點區(qū)域識別技術后,熱點數(shù)據(jù)展示功能的漏檢率降低到了0.3%,而誤檢率則降至0%。
通過這些技術的應用,我們不僅提升了觀眾的觀賽體驗,還使得賽事的數(shù)據(jù)分析更加直觀和便捷,讓每位觀眾都可能成為賽事分析的專家。
04 總結(jié)與展望
通過對LOL賽事直播中關鍵事件的自動識別和分析,B站在游戲識別技術方面取得了顯著的提升。我們的技術涵蓋了從文字識別、目標檢測到多模態(tài)信息融合等多個領域,構(gòu)建了一條完備的高能打點和互動呈現(xiàn)的技術鏈路。觀眾現(xiàn)在可以通過進度條上的高能點直觀地回顧賽事中的精彩瞬間,也可以訪問熱區(qū)查看實時賽事數(shù)據(jù),這種互動式的觀賽模式極大地增強了觀眾的參與感和對賽事的關注度。