「回顾」Content understanding in Hulu

  • 2019 年 11 月 22 日
  • 筆記

Hulu是美国领先的互联网专业视频服务平台,对视频内容的分析与理解自然成为Hulu的一个重要研究方向。笔者在这里主要介绍视频内容理解技术在Hulu的一些应用和相关实践,包括视频片段的精细切分、视频处理的自动化流程、视频标签的生成和应用、视频内容的再生成等。

1. 视频片段的精细切分

对于一个长达几十分钟的电影或电视剧,为了更好地理解其中各个片段的内容,我们需要对视频进行精细切分,例如,哪儿是片头/片尾,哪儿是电视剧的前情回放片段,哪儿是视频制作方插入的宣传片段,哪儿有背景音乐,哪里有广告,哪些是带有主角光环的精彩片段等。此外,还包括视频中是否有嵌入的电视台logo,是否有嵌入的字幕等。图1是视频片段精细切分的一个示意图。

对视频进行精细切分,有很多用处。例如,可以在播放视频的时候自动跳过片头片尾等用户不感兴趣的片段,可以在视频播放的进度条中标记音乐片段、精彩片段出现的位置,可以替换掉视频中的广告片段并插入Hulu自己的广告等。下面,我们以片头/片尾检测、内嵌字幕的检测和语言识别、背景音乐的检测和分类为例,简单介绍相关技术在Hulu的应用和实践。

图1. 视频片段的精细切分

1.1 视频片尾检测

不同于国内的电视剧,美剧的片尾比较复杂,样式比较多:有比较常见的黑底白字形式的演员信息滚屏字幕,有正片内容还没有播完就开始在屏幕上显示字幕信息,也有用小窗口播放正片内容但在屏幕其余部分展示片尾字幕信息,以及有些视频的片尾看上去与正片内容比较类似(尤其是动画片)。特别地,还有不少视频片尾后面有彩蛋片段,甚至有的视频快结束的时候是一段片尾一段正片重复好几次。

片尾检测的主要模型框架如图2所示,具体包括如下几个步骤:

a. 先对视频进行切帧,每秒一帧,只考虑视频的最后若干秒(例如最后200秒)。

b. 用Deep CNN对每个帧进行二分类打分,得分越高表示越可能是片尾帧,得分越低表示越可能是正片内容。如图3所示,图片中如果包含大段字幕信息,得分就会比较高,被认为可能是片尾帧。Deep CNN是一个有监督模型,它的训练数据来自于Hulu内部已有的片尾标记数据,这些数据虽然不准确,但是由于量足够大,因此还是能训练出足够稳定的Deep CNN分类器。

c. 考虑到视频是图像序列,时序信息也很重要,因此在得到Deep CNN得分之后,我们在后面又添加了一个浅层CNN结构,即Shallow CNN,用来融合帧与帧之间在时间维度上的上下文信息。

d. 此外,在Shallow CNN模块的输入部分,除了深度学习模型Deep CNN的得分之外,我们还添加了一些传统的片尾检测模型所采用的信息。例如,如果某个剧的所有集的结尾处都有一段相同或相似的片段,那么这个片段很可能就是片尾。为此,我们可以计算某一帧与上一集、下一集对应位置处的帧是否相同/相似,并把这个信息归一化之后作为Shallow CNN的一个额外输入(添加一个新的channel),与Deep CNN的得分放在一起,进行融合,从而进一步提升结果。

实验表明,上述算法在做片尾检测时,86.86%的视频的检测误差在5秒以内,92.53%的视频的误差在10秒以内。与Hulu之前已有数据相比,这两个指标分别提高了24.22%和8.22%。

前面提到,片尾点的定义有时候比较模糊,例如,对于有正片内容和片尾字幕同时进行的片段、有彩蛋的片段等,我们可能也不清楚用哪个点作为片尾起始点比较合适。为此,我们尝试从另一个角度来思考这个问题。大部分用户对片尾其实不感兴趣,在看到片尾点时会自行点击退出视频,继续观看下一集或者其它内容。因此,我们可以分析用户最后一次离开视频的时间分布,用这个分布的波峰点来预测片尾点的位置。我们用Hulu过去六个月的用户行为数据做了实验,发现这种方法比之前的Deep-and-Shallow CNN方法效果还要好一些。这说明,基于用户行为数据的分析是有意义的,这也是片头片尾检测一个新的探索方向。这个方法不足的地方是,对于新剧或比较冷门的剧,往往无法采集到足够多的用户离开时间记录,此时得到的波峰点准确度就大大下降。因此,这种基于用户行为数据的方法,需要与前面的模型配合使用:对于新剧,用之前的Deep-and-Shallow CNN模型计算出一个初步的片尾点;经过一段时间之后,该剧的用户观看量增加,能采集到足够的用户离开时间记录,就可以利用这种方法来校验和优化之前的片尾点。

图2. 视频片尾检测的整体框架

图3. Deep CNN在每个帧上的得分

1.2 视频片头检测

与片尾相比,美剧中的片头的情况更加多样化。很多片头并不是从视频一开始就进行的,而是先播放一段内容后再插入片头片段。特别地,有些片头里还包含前几集的剧情回放,这种比较难区分(前情回放与正片内容看上去比较相似)。对于正常的片头,我们采用与片尾检测类似的解决方案,这里不再赘述。对于前情回放,我们观察到,在美剧中,有前情回放时,在字幕中,一般会伴随着“previously on”、“last time”等关键词,或者同一部剧不同集的开头部分会有一两句相同的句子。这样,通过分析字幕文件,检测这种关键词或特定模式的出现与否,就可以判断视频中是否有前情回放了。

1.3 视频内嵌字幕的检测和语言识别

Hulu上有些视频是有内嵌字幕的,我们需要检测出哪些视频有内嵌字幕,这样在播放视频的时候,就不需要再次加载字幕文件,避免多重字幕影响用户体验。当然,我们还需要知道内嵌字幕的语言种类,毕竟,给一个美国用户看日语字幕也不是很好的用户体验。因此,视频内嵌字幕的检测和语言识别在Hulu也是非常重要的。

视频内嵌字幕的检测,实际上是文本检测任务,一般来说并不是一个难题,主流的CTPN(Connectionist text proposal network)模型就可以解决。但是,在实际应用中,也遇到了一些问题。首先,我们并没有人工标注好的数据,模型的训练数据从哪儿来?我们最终是通过用干净的视频及其对应的字幕文件,合成了很多带内嵌字幕的视频,以此作为训练数据。在合成数据时,需要保持字幕文字的多样性(字体、字号、尺寸、位置、文字的色彩变化、边缘轮廓等),这样才能保证在合成数据上训练的模型能比较好地推广到真实场景中。另外还有一个问题,就是很多新闻报道,其中的新闻标题很容易被误识别为字幕,需要特别考虑和单独处理。

对于字幕的语言识别,主要难点是拉丁语系的很多语言(英语、法语、西班牙语、意大利语、德语等),外形看上去比较相似,单纯靠视觉信息很难区分开来。我们采用的方案是:在CRNN(Convolutional Recurrent Neural Network)模型的基础上,增加了一个分支,先对字幕区域做一个分类任务,将字幕划分为拉丁语、日语、韩语;如果是拉丁语系,则用继续进入CRNN的另外一个分支,做字幕文字的识别(OCR),最后将识别出来的字符输入到一个开源的语言包中来识别具体是哪种拉丁语。整个内嵌字幕的检测和语言识别的模型框架如图4所示。

图4. 视频内嵌字幕的检测和语言识别

1.4 视频背景音乐的检测和分类

从抖音的流行可以看出,音乐片段对很多用户具有吸引性,因此,视频片段的精细切分当然少不了背景音乐的检测。图5展示了Hulu关于视频中背景音乐片段的检测和分类的算法框架。简单来说,先将音轨信号转换为频谱图,然后借用图像中的卷积网络来做检测和分类任务。最终,我们可以检测出一个视频中带有背景音乐的片段的位置,以及背景音乐的类别(古典、爵士、金属、流行、摇滚等)。至于训练数据,对于检测模型,是借助于字幕文件中的音乐符号来采集正样本;对于分类模型,则是利用开源的音乐数据集来训练的。

图5. 背景音乐的检测与分类

2. 视频处理的自动化流程

每个视频都会有对应的meta-data信息,包括视频的片头/片尾位置、是否有内嵌字幕、是否有内嵌广告等。这些信息在用户观看视频时发挥着重要作用,数据不准确会很影响用户体验。因此,Hulu一直对这些数据的质量有着比较高的要求。为了达到高质量,就需要花费很多人工去检查和校验这些数据。上面提到,有了AI算法之后,我们可以利用算法来快速检测很多信息。然而,算法的准确性毕竟比不上人,更好的方案是:先用AI算法计算一遍这些信息,如果算法返回结果的置信得分比较高,就直接采纳;否则,转入人工校验。这样,通过AI算法和人工校验的配合,既能提升效率,也能保证质量,同时没有增加人工负担。

作为流媒体平台,Hulu拥有海量的视频数据,尤其是引入了直播内容之后,Hulu的视频内容的更新速度非常快。如果每次有新视频进入Hulu,都需要人工启动AI算法,会比较繁琐;另外,如果算法运行不及时,就没有办法在人工校验之前完成算法初筛,影响效率,增加人工负担。因此,我们构建了一个针对Hulu新来视频的AI算法自动化流程:一旦有新视频进入Hulu,就会自动触发各个AI算法启动运行,计算出相关的meta-data信息,保存在特定的数据库中,供后续的人工校验或产品使用。为了稳定地支持这种自动化流程,我们还同时搭建了Hulu的AI平台,包括底层的分布式存储平台和分布式计算平台。图6是Hulu的AI算法自动化流程的示意图。

图6. AI算法自动化流程

3. 视频标签的生成和应用

日常生活中,我们一般不鼓励给某个人或某件事打上一个标签。但是,对于Hulu的海量视频,我们希望能给每个视频打上一些标签,这样后续对视频的分析、理解和应用都比较方便。比如,如果一个电影有“飙车”这样的标签,用户就可以直接通过搜索这个标签找到相关的视频。

关于视频标签生成这个方向,目前有很多公开的数据集和模型,它们各自有不同的标签体系、不同质量的标注数据。对于Hulu而言,考虑到自身的业务场景和特定任务,我们对于视频标签的需求又不同于这些开源数据集。因此,我们需要在开源数据集的基础上,构建一个Hulu统一的标签类别体系。这是一件非常复杂、工作量很大的事情,我们需要融合多个开源数据集的标签类别体系,同时融合多个模型、多种类型的信息(视觉、音频、文本),来得到每个视频在Hulu统一的标签体系下的标签结果,具体的框架结构如图7所示。

目前,在Hulu统一的标签体系中,有诸如物体、场景、行为、事件、名人等标签。这些标签可以是帧级的、镜头级的、场景级的,甚至可以聚合为视频级别的(如图8所示)。

图7. 构建Hulu统一的标签体系的结构图

图8. 视频级别的标签(蓝色是第三方数据,绿色是我们算法生成的)

4. 视频内容的再生成

以上介绍的项目,都是在已有的视频内容的基础上,借用AI算法来做一些分类、分割、检测、预测的任务。当然,我们也能借助AI算法来生成一些数据,例如视频摘要、视频频道的动态预览图、视频封面图片等。以视频封面图片为例,由于特殊的UI设计,Hulu对于视频封面图片的要求非常严格。为了达到最佳的展示效果,我们需要对原始的封面图片进行裁剪、调整,使其满足一系列条件,例如,封面图片中不能有文字(UI上会显示文字),图片中的人脸、重要区域的位置要合适(避开UI上的文字、菜单区域)等。为此,我们需要分析封面图片中的文字、人脸、显著性区域等,然后根据条件做出最佳的裁剪和调整,具体的流程如图9所示,最终的效果如图10所示。

图9. 视频封面图片的自动生成(流程图)

图10. 视频封面图片的自动生成(效果图)

总结:

Hulu作为专业视频服务平台,AI技术已经广泛应用于各种视频内容理解任务。本次分享主要是视频内容理解在Hulu的一些应用和实践,希望对大家的学习能有所帮助。笔者水平有限,若有错误或不当之处,敬请指正。

——END——

分享嘉宾:江云胜 Hulu 高级研究员 内容来源:杨林霞

内容来源:DataFun AI Talk《视频内容理解在Hulu的应用实践》

出品社区:DataFun