鱼羊 发自 凹非寺
量子位 报道 | 公众号 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战区能再拿个冠军不?来唠唠看好哪支队呗?
走过路过的盆友,也不妨一起来虎牙围观吐槽,感受一下电竞氛围呀~
— 完 —
量子位 QbitAI · 头条号签约
关注我们,第一时间获知前沿科技动态