技术详解:基于人脸识别的AI弹幕-阿里云开发者社区

开发者社区> 阿里文娱技术> 正文

技术详解:基于人脸识别的AI弹幕

简介: 有些弹幕比剧情还精彩,那些脑洞大开、观点鲜明的弹幕,让千万用户参与到“剧情创作”中,所以很多人都喜欢边看剧,边看边发弹幕。你发现了吗,在AI算法的加持下,弹幕的呈现形式也花样翻新,优酷的很多剧都上线了基于AI人脸识别的跟随弹幕,与剧情的贴合度更高,可玩性更高。这类弹幕是如何实现的呢,有哪些核心技术?

作者| 阿里文娱高级无线开发专家 少廷

image.png

有些弹幕比剧情还精彩,那些脑洞大开、观点鲜明的弹幕,让千万用户参与到“剧情创作”中,所以很多人都喜欢边看剧,边看边发弹幕。你发现了吗,在AI算法的加持下,弹幕的呈现形式也花样翻新,优酷的很多剧都上线了基于AI人脸识别的跟随弹幕,与剧情的贴合度更高,可玩性更高。这类弹幕是如何实现的呢,有哪些核心技术?

在GMIC智慧文娱技术专场上,阿里文娱高级无线开发专家少廷,就分享了在优酷播放场景中,如何让互动结合算法的识别能力,实现新的AI弹幕形态。同时也介绍了优酷在互动游戏化领域的探索,如何让互动与内容相结合的应用实践。

一、 播放中的互动场景

我们先思考下,为什么在播放场景中加入互动环节?归纳起来有四个价值:一是让用户更好的融入剧情,参与到剧情之中;二是互动是实时的,能够对用户做实时反馈,体感非常好;三是很多用户在看剧时,精力不是那么集中,我们通过互动去抓住用户的剩余注意力;四是增加社区属性,让用户尽情表达,产生归属感。

image.png

上图是优酷重点播放互动的一些场景,包括在画面中弹出提示,对相关情节信息做科普介绍;双流播放形态,通过子母屏为播放场景提供第三人称的视角;在剧中加入答疑、猜剧情,投票中等,当然最核心的形态是弹幕。

因为无论从用户规模还是用户效率看,弹幕都是效率最高的互动形式,是互动最头部的场景。说到AI互动弹幕,我们的出发点很简单,希望用户的互动与内容能更紧密结合,让互动的展示形态更年轻和二次元。之前我们在弹幕中做过角色扮演的弹幕,所谓角色扮演弹幕,就是用户可以选择剧中角色,以他的口吻和头像来发弹幕。
image.png

这种角色扮演的弹幕,转化率非常高。我们就进一步思考,用户能不能直接在角色上,通过类似漫画配图的方式发弹幕,与内容融合到一起。这就是AI互动弹幕的由来。
image.png

用户的脑洞和创造力是无穷的,大家总是能想到各种很神奇的弹幕文案来调侃,能让用户有发挥空间与内容产生互动。

二、 基于机器视觉的互动弹幕的技术挑战

1、技术面临的问题:识别放到端侧还是云端?
一是识别剧中人物,去识别人像,这个识别本身有成熟的算法,既可以放到端侧,也可以放到云端,也就是服务端。 那识别能力应该放到哪里?
核心的识别能力,如果放到C端。识别的功耗和性能开销是很大的。如果针对某一些垂类场景,在比较短的时间内识别,放在C端完全没有问题。但如果在长视频中,从头到尾都有一个C端的识别引擎在跑,对机器的性能、开销、耗电都难以接受。
二是C端识别的精准度,因为算法识别直接输出结果,很难达到产品化的要求。在这一过程中,还要对识别结果进行二次加工和处理,包括平滑处理、降噪。这些处理都需要更多的工作时长,如果都放到C端,难以保证实时性。所以我们将整个识别引擎都放到云端,通过云端识别输出数据,经过优化处理后把这些数据打包下发到端侧,实现投放和互动。

2、算法和工程如何对接?
工程和算法如何对接、工程如何解决算法输出后的各类问题?包括识别精度、数据抖动、视频文件变更之后导致的数据不一致的问题;另外,端侧要解决核心的体验问题。在播放过程中,镜头频繁切换时,这些人像在镜头中变化的问题,手机上的界面的横竖屏的适应;还有气泡样式的弹幕,在不同剧中和内容的氛围会不会产生差异,如何去融合等。
image.png

以上是我们的技术链路,有下到上,依次是算法侧、服务端、客户端。在算法层,我们通过模型训练,抽帧对视频的每一帧的画面进行识别,通过人脸检测和跟踪来抓取每一帧中的人脸数据,再传输到服务端进行预加工,包括数据合并和降噪,将人脸数据打包,通过互动投放引擎投放到端侧,端侧来实现核心交互和基础体验。
1、 在算法侧,具体的技术细节如下:

image.png

1) 视频抽帧与识别
抽帧现在按每秒25帧来抽取,也是一个视频的基础帧率,对于高帧率的视频当然可以抽的更多,但这与机器开销和耗时是成正比关系的;另外在算法侧,人脸的识别引擎有几部分,一个是标准的人脸识别,能够识别大多数人脸的场景。其次,优酷还针对明星和人物角色,做了单独优化,我们会抽取一些剧中的明星和角色的数据,作为数据集去训练,提升剧中主角和明星的识别率。
2) 人脸跟踪
算法会识别出每一帧中人脸的数据,按照坐标形式,标注人脸对应的位置和特征,通过坐标的输出来连接每一帧,通过人脸特征标识,就知晓这个镜头从入场到出场,连续的一系列人脸是同一个人。从而标识出来镜头中一系列的人脸运动轨迹。

3) 平滑处理,防抖动。
算法是基于单帧对人脸做识别的。因为人是不停运动的,单帧的识别结果中,人像的位置是有偏移的,识别出的每一帧人像坐标和大小都存在像素级的偏移的,连续起来,在播放场景中就会看到明显的抖动。
我们在工程侧,对抖动做了检测和计算,将抖动限定在一个范围之内,让整个人脸的轨迹更平滑。

视频2这是直接算法输出的人脸轨迹结果,每个人像都会有明显的抖动;视频3,是经过平滑处理后的结果,人物在整个镜头中走动,或者在一个镜头中有轻微晃动,我们的识别结果是稳定的,抖动效果已经被平滑消除掉。
image.png

2、服务端。服务端对算法输出的人脸的原数据要做一系列的处理:
1)降噪,过滤掉镜头中不重要的人脸的杂音。所谓不重要,是因为镜头中有大量的路人镜头,很多是一闪而过的,这些镜头的人脸对于用户交互来说是不具备太大价值。所以我们要把路人的、一晃而过的镜头中的人脸都过滤掉。
2)防抖。我们会对原数据进行平滑处理。
3)合并,合并算法的人脸输出去,把一个镜头中连续帧的源数据,如果是同一个人,比如他从左边走到右边,通过特征值来判断这个镜头是同一个特征值同一个人,那就把这一个镜头的人脸打包。这种包含了相同人脸和对应轨迹的数据,合并到一起之后,它是一个的数据包;然后将用户发的弹幕数据跟人脸的轨迹数据包,一起打包,投放到端侧。
image.png

3、 在端侧的技术细节
借助于优酷互动投放引擎,将人脸部的每一个镜头的轨迹和弹幕一起投放,在端测完成识别和展示。端侧根据投放的人脸的轨迹坐标来轮巡,轮训到播放到这个位置,是有人脸轨迹的,就是这个时间段人脸的轨迹从a位置到b位置,以及在这个时间段,我们有对应的弹幕数据。端侧会把人脸位置的弹幕气泡显示到播放场景中;另外,还要解决技术体验问题,包括镜头切换,虽然是细节问题,但是其实费了很多功夫。 例如,用户想发弹幕,在发送的一瞬间,镜头切换了。用户侧看到的是弹幕闪一下就消失了,因为这个镜头已经切走了,这个体感是非常不好的。
image.png

所以,在技术上我们要保证人脸弹幕发送后,会在同一个位置显示一定的时长。现在是一秒左右;投放弹幕的时候同样如此,如果用户在镜头的最后几百毫秒发送气泡弹幕,我们会把它做时间前置偏移,让弹幕稍微往前,在镜头中完整展示出来。
另外,在氛围方面,我们有古装剧、有现代剧、有悬疑、有综艺,剧的类型的差异比较大。气泡弹幕与播放结合比较紧密,我们还是希望它的效果、样式、氛围能够跟剧本身贴合。我们在端测实现这类样式的动态配置能力,对于不同的剧集能够展示不同的风格。刚才大家在案例中也看到了,有红的、有蓝的、有灰的,然后古装剧会带一些纹理小花之类。
image.png

另一个严重问题,当视频剪辑变更之后,数据如何快速更新?
image.png

首先为什么会有视频变更?这是视频行业中的普遍现象。例如一个大剧,一个热综,在整个播放周期中,会经常因为一些原因被重新剪辑。重剪后就会引发一系列问题,比如,可能有一个桥段就被剪掉了,原来识别出来的人脸的数据结果和现在新的视频就对不齐。另外,运营同学或者剪辑同学,其实无法准确的告知,在什么时间点剪了什么内容,无法依靠人力来保障同步。
另外,假设我知道视频被剪辑了,全部重新识别一遍行不行?回答是不行,第一是耗时长,额外开销高;第二,如果重新识别,相当于镜头中的人脸的数据全部都更新了一遍,用户发送的存量弹幕和人脸相结合的部分,就无法还原。
所以我们核心问题,就是要解决如何快速找到剪切点,并且只处理剪辑掉的部分。
技术解法:
首先工程侧要自动识别变更,一旦视频源变更,服务端就能接受到相应的通知,能够启动去做重新识别。就是算法要识别剪辑之后差异的部分,找到中间的差异的时间段。这样处理的优势是:1)实现无人值守;2)识别时间短,分钟级处理完毕。
具体是如何实现的?通过算法识别的特征值。例如,原视频中a和b是两个人脸,中间的时长是n秒,剪辑后变成如下这样;当算法再去识别新视频源时,发现c和d对应的人脸特征值和a和b不一致、时长对不上。通过取两者(a和b,c和d)的差值,就知道那部分是被剪掉了,然后去处理差值的部分,一两分钟重新识别完,保证数据重新上线。
image.png

左边是用户用AI互动弹幕发布的内容,很多都是优秀的段子手,大家能够玩起来。
右边是弹幕中看到的用户反馈,表达不是很理解、不清楚是做什么的,或者认为弹幕干扰正常观影。所以目前AI弹幕还是小范围的投放,并没有全面的铺开,因为我们也在思考用户对弹幕的接受度。 所以在长视频中,并不是所有用户都能接受。更好的方向是将这种互动性更强的更有意思的模式,与短视频、直播结合,因为在短内容和碎片化内容中,用户的接受度会更高,娱乐性会更强;

四、播放互动的相关尝试和展望

1、互动交互能够和内容更紧密结合,交互方式更游戏化
image.png

基于人脸识别的气泡弹幕,基于内容识别,能够识别到剧中的人物或者剧中的演员,甚至剧中的物体,对内容本身的理解,将互动投放跟他们做的更紧密,比如说能够跟明星结合的更紧密,甚至能够跟商业化结合的更紧密,让商业化和内容本身结合,这也是一个方向。
image.png

2、互动的效果更炫酷和惊艳
让交互结果和交互的视觉上更年轻化,更让人有意外,让用户能有更进一步互动的欲望。

3、用户参与的数据沉淀能够反馈指导内容的制作和生产
大量的用户参与互动的数据能够沉淀下来,通过对数据的理解和二次加工,抽象出一些结论。包括用户在互动上的高潮节点和用户高反馈的点。另外,对内容的理解,希望能够指导内容制作和生产。

4、短视频、直播这类碎片化的内容能够发挥互动的新价值
这种现在新的更碎片化的短视频和直播内容中,探索一些新形态和新价值。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

带你了解阿里文娱技术

官方博客
官网链接