写点什么

视频内容理解在 Hulu 的应用与实践

  • 2019-02-16
  • 本文字数:7489 字

    阅读完需:约 25 分钟

视频内容理解在Hulu的应用与实践

对于一家在线视频服务公司来讲,理解视频的内容其重要性不言而喻。只有深度理解用户观看的内容到底是什么,才能更好地给用户提供个性化的内容推荐、更好的交互体验等产品服务。


Hulu 自 2016 年开始系统性地在视频内容理解方面展开研究,从视频切分、人工合成元素抽取、视频标签生成、精彩片段分析等等课题入手,通过构建 AI 系统平台来支撑视频数据的生成和处理,在对业务及产品的支持方面也多有探索,从中也积累了一些经验。


Hulu 首席研究主管、视频内容理解和创新孵化团队负责人谢晓辉在 ArchSummit 全球架构师峰会 2018 北京站上分享了 Hulu 在视频内容理解领域所作的探索和应用,以下是他演讲的全部内容。


演讲主要分为四个方面。首先会对 Hulu 上的视频内容的特点做简单介绍;同时讲一下 Hulu 为什么要去做这件事,以及做这件事所面临的一系列挑战是什么;然后介绍 Hulu 内部对视频内容理解的支持和与此相关的技术架构调整;在这个基础架构的支持下,我们做了很多研究尝试,今天会给大家详细分享,在最后还会选择其中两个比较典型的例子给大家做介绍。


Hulu 是一家全美资的公司。Hulu 拥有较多的高质量电影和电视剧,还有电视直播;这种电视直播不是简单的把电视信号搬到网上,Hulu 采取了一种创新的方式来处理电视的直播信号,通过把 Live 流做拆分,使得电视里面的许多内容,用户也可以像 VOD 一样去进行点播。


Hulu 背后的母公司包括 COMCAST、迪斯尼、福克斯,还有时代华纳。除了这几家母公司给 Hulu 提供强大的内容支持之外,有超过五百多家的内容合作伙伴给 Hulu 提供精彩视频内容,与此同时 Hulu 还有超过一千家的广告商合作伙伴。有这么多的内容提供商给我们提供内容,如何控制内容信息的质量,是一个潜在的挑战。


对于 Hulu 来说,希望用户来到这个内容平台,可以一站式消费高质量的影视剧。Hulu 目前支持的 Live 流超过一百多个,拥有的电影电视剧集超过三百万。这些视频的数量是非常丰富的,可能做深度学习的同学们都会非常高兴看到我们有如此多的数据。

为什么要做视频内容理解?

在 AI 的大潮之下,Hulu 除了拥有的这么多的数据之外,还有下面一些做内容理解的原因分享给大家。



上面左边第一幅图是思科做的一个调查,视频作为互联网上的主导因素,每年还都在以一个非常大的速率增长。其次,图二是李飞飞在 17 年 CVPR 上对 ImageNet 竞赛的一个总结,在深度学习技术的支持下,对图片分类和物体检测方面是有突破性提升的,Top5 的分类错误率一直在下降。另外一点,我们当时也观察到,整个业内有很多公司已经把注意力由图片聚焦到了视频,尤其是以 Google 为领先。在 16 年的时候, Google 发布的 Youtube 8M,微软的 MSR VTT 等,同期还有很多大学也发布了许多视频数据,例如国内复旦大学的 FCVID-LSVC 数据集等。


以上是外部的一些因素,从 Hulu 内部来讲,也有非常多实实在在的产品或者业务需求。最为典型的例子,Hulu 作为一家在线影视服务公司,最核心的一个问题,就是虽然拥有那么多的视频资源,如何快速准确的在有限的展示空间下推送给用户。Hulu 的用户,无论是用手机也好,或者用 Web 端也好,还是在家里用电视也好,他所能浏览和观看的展示窗口是非常有限的,这主要是因为多媒体资源的展示通常都是通过图文混排的方式,而图文混排在 UI 上是非常占面积的。一个用户通常在浏览大概几十个这种图文混排的介绍之后,他就不太愿意再往下翻页了。


因此,一套好的推荐系统对 Hulu 的重要性是不言而喻的,之前的推荐系统算主要是基于对用户观影行为分析的协同过滤方法,并没有利用太多用户所观看的电视剧里面的内容信息。虽然算法有时也会考虑利用一些简单的分类标签,但实际上这距离准确理解用户真实的观影兴趣是远远不够的。我们可以回想一下看电影的整个过程,看之前或许会聆听其他人的推荐意见,但当我们真正看完一部电影,一定是心潮澎湃或是有非常多个人想法的。无论是吐槽也好,感慨也好,你会发现这些感慨和他人推荐给你的理由没有太多关系,这些感慨更多的是来自于丰富的电影信息和元素对我们的视觉和情感上的冲击。如果我们可以准确的提炼这些信息,那么用户的观看行为则可以退居次要的地位。

视频内容理解技术的挑战

如上所述,有多方面的理由支持去做视频内容理解。但这里面同样面临很多挑战,我列了一下四个方面跟大家解释。



一方面,尽管 Hulu 现在拥有超过两千多万的付费用户、数百万的视频资源,但大多数的数据并没有标注,对于机器学习以及深度学习来说,没有标注的数据,很多算法模型基本上是很难设计和优化的。


其次,与国内很多 AI 公司做视频分析或视频理解不同,比如视频监控,视频数据都来自于真实的场景。但是对于 Hulu 来说,除了一部分真实场景的体育或新闻视频,大量视频节目发生的场景是虚拟的,例如卡通片、科幻片,包括一些怪物的形象、化妆或者带面具的人等,整个视频也是要给大家塑造一种非常新奇或者玄幻的感觉,这些影视剧中场景是虚构的,里面的元素是新奇的。这对于擅长目标识别和分类的 AI 算法来讲是一大挑战,这些场景和新奇元素的数据量通常非常稀少且不易标注,导致非常难准确的处理。


第三,关于技术的难与易。如前面提到的,尽管深度学习给计算机视觉领域带来了翻天覆地的变化,但这种变化很多是发生在图片级别,当我们把这个问题延伸到视频领域的时候,发现问题并没有被很好地解决。例如,检测这个视频里发生了一个什么样的事件,讲了一个什么样的故事,传递了什么样的情感,这个问题到目前为止都没有很好的解决方案,恰恰这些信息对个性化推荐又极为重要。


第四,作为一家在线视频服务公司,每年会花费巨额资金去购买影视剧。如果它少买一部剧,节省下来的钱,有时甚至可以买一个创业公司了。那么 Hulu 有没有冲动去买技术买数据,放弃自己研发呢?对于这个问题,我们的结论是,Hulu 肯定需要在某些数据和技术上实现自研。原因很简单,因为 AI 的很多技术是深度绑定业务逻辑的,这意味着技术架构的升级和更新。单纯买技术,意味着公司可能会滞后于技术升级换代,而且很难和 Hulu 的产品深度融合。


为了更好的支持视频内容理解方面的工作,Hulu 内部也做了一些技术架构上的调整。有多个开发团队参与来构建 AI 的基础架构。我们在 Hulu 内部构建了一个 AI 平台,大体上可以用三句话来解释:共享的数据和存储,共享的特征和共享的算法模型。



另外,视频的内容理解需要一套自动化的流程,从内容提供商提供的新视频到达 Hulu 开始,触发 AI 算法生成数据,到数据接入 Hulu 视频处理的 pipeline,服务于终端用户。如上图最左边,在一个新的视频到达 Hulu 做转码之前,我们会触发在 AirFlow 上运行的一个 Job,然后通过 Nimbus(Hulu 内部的 PaaS 服务),触发 AI 的算法调用;最右边的 FrameHouse 支持把 Hulu 所有视频做秒级别的帧拆分和存储;通过 AI 算法引擎生成的数据最终会存储在以内容数据为中心的数据库。

Hulu 的视频内容理解工作

在讲完内部架构的支持之后,来到今天我分享的重点,我来介绍一下 Hulu 在视频内容理解方面的主要工作和尝试。简而概之,我们这两年的研究重点是视频元数据的生成,其中又可以把它分成三大类:


  • 第一类是视频的精细化切分。一个高质量的影视剧视频里面会包含很多人工编辑的元素或者痕迹,例如,镜头拼接的边界、场景的边界,片头、片尾、背景音乐等等,我们首先需要把视频进行拆分,找到视频中人工编辑或添加的视频元素。

  • 第二,在对视频做了精细化切分之后,会对切分出的视频片段进行理解和自动标注,并对部分内容做视频级别的标注。

  • 第三,基于对数据的充分理解和标注,我们在内容生成方面做了部分尝试,包括生成各种 Thumbnails,找到视频非常精彩的地方,合成视频摘要,亦或用 AI 算法生成一些音乐、avatar 等内容。


我接下来会详细讲我们在这块做的一些工作,最后还会再举两个例子,具体解释视频内容理解和元数据的提取是怎样提升业务性能,扩展业务能力的。


精细化切分

第一件事情是精细化切分。依照人工编辑的元素或者痕迹把一个高质量的影视剧视频拆开。这些元素或者痕迹包括,电影电视的分级标记,片头片尾、镜头边界、烧录的字幕、背景音乐,文字信息等等。有一些元数据内容提供商会跟踪视频内容一并发送给 Hulu,但这不意味着不需要用算法再次处理,如之前提到的,Hulu 拥有超过 500 家的内容提供商提供内容,元数据的缺失、质量不一致的问题是普遍现象。例如下面的片尾检测例子:


  • 片尾自动检测



国内有些公司可能是通过人力来标定片头片尾的数据,但是在美国,人工的成本是非常高的。同时在 Hulu 的平台上,单靠内容提供商提供的片尾标记的数据的准确率也是非常低的,5 秒的误差范围内准确率只有百分之六十多,Hulu 需要耗费大量的人力去审核这些元数据。


因此我们首先想到是否可以用机器来自动检测片尾的位置。片尾实际上包含多种情况,最简单的片尾可能只是一个滚动的字幕,背景单一;稍微复杂一点的是由各种各种各样的 Logo 组合起来的片尾;还有一种情况则是内容和字幕混排一起出现;比较难处理的情况是内容还在播放,字幕是直接覆盖在内容的上面。经过仔细讨论和分析,我们最终设计了一套基于深度神经网络的方法,对每一秒级别的视频帧做检测,最后多帧融合,最终大家可以看到我们提出的 Hybrid Deep CNN 算法模型取得的片尾检测准确率是非常高的。


  • Logo 检测



另一个例子是检测视频里面的 logo,如上图所示。Hulu 面临的挑战是,如何快速的把数百个 logo 准确的检测出来。这在 Hulu 有实际的使用场景,原始的从内容提供商提供的视频文件通常是没有 channel logo 的,Hulu 根据获得授权在不同 channel 播放时临时插入对应 channel logo。但实际产品环境下,我们发现内容提供商提供的视频有大约 10%已经把 logo 烧录进去了,如果此时 Hulu 再在上面插入 logo,给用户带来的观看体验是非常差的。同时审核一个视频是否带有 logo 的代价也非常高,logo 会出现在视频的任何一个位置,需要人工从头到尾把视频快速地过一遍,才能知道这个视频里有没有已经烧录进去的 logo。


我们在 MobileNet 上结合 SE 模块,并采用反卷积 SSD,来检测 logo 是否出现以及出现的位置,并通过多帧的结果融合最终给出判决。在这个算法框架之下,我们还增加了一个基于传统方法的 logo 预测模块,用来预警未加标定的新的 live channel 的 logos。当一个算法从来没有见过的 Logo 出现时,我们会给内容审核员发送提醒。


  • 音乐检测和分类



还有一个比较有意思的例子是检测影视剧中出现的插曲,Hulu 的视频内容质量都比较高,这意味着视频的插曲通常也非常好听,很多人在看完视频之后,会频繁地回过头来复听那首插曲。我们的方法是首先把音频做秒级别的切分,将音频片段做频谱分析,通过 CNN 对是否是音乐做判断,最后在时序上找出完整的插曲片段;我们还会对检测出来的插曲做分类,比如它是爵士乐,还是乡村音乐;同时我们也会评估电影里插曲的质量,有一些视频里虽然有好听的音乐,但是因为演员可能正在大声说话或者有非常嘈杂的其它声音,这些音乐会被检测出来并剔除出去。刚才播放的两首音乐,第一首音乐是清唱的声音,这说明 CNN 网络学习到了音乐和歌唱的特点而并非只是学习到了乐器的特有音律。

视频标签

讲完视频的精细切分之后,我们做的第二件事情就是对切出来的视频,从镜头或者场景级别给它打标签做分类。如同之前提到的挑战,尽管 Hulu 内部会做一些标注,同时也会利用第三方的公司帮我们标注,但是这个数据量还是远远不够的。因此我们也会借助一些学术界的公开数据集,通过 transfer learning 把模型的结果在 Hulu 的数据集上 fine tune,并做进一步的算法加工去做标注。



上图是一个示意图,每个算法可能运行在不同的数据集上,并可能只能处理某一类标签,这些标签结果会将其映射到 Hulu 自己定义的分类系统上,最终经过算法质量评估、标签融合和算法融合生成一个最终标签结果。



上图是一个更细致的处理流程。首先第 0 步是公司内部定义了一套 Hulu 自己的分类标签系统,这个分类系统可以尽量涵括现在及未来可能的产品、开发以及数据分析团队的需求。有了标签系统之后,当我们在某个特定数据集上设计并训练得到一套还不错的算法时,比如说基于 Places365,我们首先需要把 Places365 本身的标签列表映射到 Hulu 的分类系统上,这样做的目的是避免不同标签列表带来的同义词、语义相关等问题,并对后期的特征融合提供支持。


每一个加入到系统中的新算法,都需要一个算法评估模块,这主要是由于算法迁移到 Hulu 影视剧的场景下后,算法的整体性能可能会下降,有很多标签的识别效果变差,我们需要知道算法整体的质量,并衡量和评估其每个标签的识别质量到底如何,应该以怎样的方式去融合该算法的识别结果。同时,当系统有多套算法生成结果时,我们还需要去做多算法源、多模态的信息融合。比如来自视觉、音频和对话(字幕)均分别检测出有枪、枪声和枪杀等相关标签,那么如果判断该场景下标签“枪击”的置信度。


目前我们这套系统已经解决了镜头和场景级别的标签生成问题,从镜头级别提升到场景级别,再提升到视频级别,我们还需要另外一套标签和分类系统。通常镜头级别的标签比较偏事实和描述性的标签;视频级别则通常是比较偏重于剧情,或者偏重于情感的标签,这种标签从底层的事实描述性标签提升上来,是一个非常难的问题,因为这里可能存在语义上的鸿沟。


在开始报告的时候也提到过语义鸿沟的技术挑战,Hulu 目前也有一些早期的研究工作,如何基于视觉的理解生成视频级别的标签。这里给大家看一些初步的结果。经过大量的后处理工作,可以看到,一些 documentary 类型的节目,还有比如主题明确的一些节目,例如音乐选秀、饮食的、球赛、新闻等等的结果还是非常不错的。



给大家看几个例子,图片中蓝色的是美国一个比较大的第三方数据公司提供的标签,它的数据主要是人工标注的,用来做参考。下面绿色的标签分成两类,第一种是基于字幕和文字信息,一种是纯粹基于视觉的结果。最左边是一个厨艺比赛的节目,右边是一个动画片,下面是一个美国橄榄球赛的结果,看起来质量生成的标签还说的过去。

内容生成和视频摘要

在对视频做完标签以后,我们第三件重要的工作,就是做内容生成。目前主要集中在如何找到视频精彩的地方。比如,Hulu 上非常多的运动类节目(如篮球、足球、冰球等)为例,我们怎样才能快速找到各种精彩瞬间,同时可以在进度条上给用户提示。在运动类节目上,我们主要的方法主要是通过对回放的检测,结合比分牌、欢呼声、特定的动作等等特征的检测,找到真正精彩的地方。



对于影视剧如何找到精彩的瞬间呢?由于每个人对精彩的定义不尽相同,我们会针对视频的内容找到多种类型的精彩瞬间,例如故事要点,视频里紧张的场景或者动作,主角出现的场景,重要的对白等等。这些片段的抽取也使得我们可以去做个性化的推荐。因为不同的用户喜欢看的精彩片段可能不一样,比如女孩喜欢看一些非常感性的场景,男孩可能更喜欢看一些动作比较多的场景。


内容生成还有一些有意思的应用场景,比如我们有一个研究基于 AI 算法生成 avatar 的例子,你昨天晚上看了一部电影,你非常喜欢里面的一个主角,电影里他有些非常酷的动作,那么当你第二天登录 Hulu 的时候,你可以看到一个 avatar 的形象,同时在模拟主角的某个动作,可以给你带来很多的回味。


内容生成还有一些比较实际的例子,个性化的视频封面。我们有那么多内容提供商,每个内容提供商在提供视频的时候,也会同步提供很多的封面图供 Hulu 使用,但这些封面图通常已经被加上了文字、片名等信息。由于 Hulu 有自己的 UX 风格和布局,整个封面图会有非常多自定义需求,比如什么位置最好不能出现人脸,什么位置可能会放置文字,如何剪裁比例看起来相对协调一些,如何保留图片的用户焦点区域等,还需要考虑到在不同的设备下的 UX 需求,AI 算法是这方面的专家,因此我们内部还设计了一套可以自动生成封面图的方案。

实践案例

讲完前面的三个方面的工作之后,下面我举两个实例具体解释视频内容理解和元数据的提取可以怎样提升业务性能,扩展业务能力的。



第一个例子是 Contextual Ads,如上图所示,可以理解为上下文相关的广告。在 Hulu 对应着三种具体的使用场景:


  • 第一种场景是指,广告商可以 target 其广告到特定的视频场景,比如防晒霜广告可能喜欢阳光沙滩等相关场景。

  • 第二种场景是指,广告商可以避免 target 其广告到某些视频场景,比如保险公司可能并不希望在视频里有车祸场景时推送人身保险的广告,以避免负面的用户体验。

  • 第三种场景是指,在某些视频内容中避免推送特定的类型的广告。这主要是部分 Hulu 的内容提供商在提供内容的同时会附带一些条件,比如 ESPN 不允许在它的 channel 推送任何和运动相关的广告。再比如 Source Park,这是美国的一部成人卡通片,它要求 Hulu 不能够在上面插播任何与政治相关的广告。因此我们不仅需要视频内容的场景标签,还需要对广告视频进行标签分析,在满足多方面要求的情况,寻求更好的广告 branding 效果。



第二个例子,叫 Content embedding,这也是我们公司内部一个比较成功的项目之一。前面提及推荐系统对 Hulu 的重要性,那么内容理解如何服务于推荐系统也是我们一直以来认真思考的问题。我们希望把内容相关的信息有效的利用起来,这些信息可以是各种标签数据,包括演员谁、导演、摘要描述、字幕、以及一些 Hulu 买入的第三方标签数据,还有从视频内容中提取的部分标签,我们通过 Graph embedding 的方法把所有元数据揉成一个 vector,通过这个 vector 可以快速判断视频内容的相似性,并与推荐算法进行了深度融合。


在视频理解领域,除了做这些与 Hulu 业务场景十分相关的应用之外,Hulu 也在希望通过公开部分数据和 Hulu 面临的挑战性研究问题,推进在视频内容理解方面的相关研究工作。我们在 2017 年的 ICIP、2018 年的 ACM Multimedia 上,分别举办了基于内容理解的视频相关性竞赛,公司把研究问题、清洗过的数据公开出来,并期望与各个高校的老师、同学们以及我们的同行们大家一起来攻克这些研究难题。

嘉宾介绍

谢晓辉,Hulu 首席研究主管,视频内容理解和创新孵化团队负责人,具有 18+年算法研发创新和管理经验。专注于模式识别、图像视频文本等多媒体信息处理,对人工智能、人机交互领域的研究以及成果落地和产品化有丰富经验,拥有 100+相关专利申请,学术论文近 20 篇。本科毕业于西安交通大学实验班,北京邮电大学取得模式识别领域博士学位。曾先后就职于松下电器研发中心、诺基亚北京研究院、联想研究院。主导研发的手写计算器曾作为诺基亚旗舰机 N97 首发的市场卖点之一,在 Lenovo 主导研发了 Horizon 桌面 PC 的创新手势交互算法,荣获 CES 数项大奖等等。



2019-02-16 13:515403

评论

发布
暂无评论
发现更多内容

计算机网络 ,什么是Internet?什么是协议?TCP/UDP的区别以及优缺点 分组交换与电路交换的区别以及优缺点

Python-派大星

10月月更

软件测试 | 测试开发工程师必读经典好书清单

测试人

软件测试 测试开发 测试工程师 测试书籍

React Context源码是怎么实现的呢

flyzz177

React

写个JS深拷贝,面试备用

helloworld1024fd

JavaScript

MASA Framework 缓存入门与设计

MASA技术团队

.net MASA Framewrok MASA

React源码分析3-render阶段(穿插scheduler和reconciler)

goClient1992

React

有奖测评 | 今天种下{1},明天就会收获一片{11.11}——程序员日暨11.11狂欢季来啦

京东科技开发者

云主机 测评 双十一 京东云 程序员日

vue组件通信方式有哪些?

bb_xiaxia1998

Vue

Go语言入门—06切片

良猿

Go golang 后端 10月月更

输入到页面展现到底发生什么?

loveX001

JavaScript

前端经典面试题合集

loveX001

JavaScript

直面数字化挑战,戴尔PowerEdge R750最全面的通用服务器

科技热闻

HummerRisk V0.4.1发布:新增依赖文件检测功能,优化 AWS 检测规则组,优化资源态势等内容

HummerCloud

云计算 云安全 云原生安全 10月月更 安全合规

谈谈曾经做的一个测试报告平台(2)

MegaQi

测试平台 10月月更

Linux网络-套接字编程

可口也可樂

Linux 10月月更 套接字编程

三次握手与四次挥的问题,怎么回答?

loveX001

JavaScript

软件测试 | 测试开发 | 校招面试真题 | 显式等待与隐式等待的区别?与强制等待的方式分别是什么,有什么区别?

测吧(北京)科技有限公司

测试 测试开发

react的jsx和React.createElement是什么关系?面试常问

beifeng1996

React

即时通讯技术文集(第3期):高性能网络编程系列 [共14篇]

JackJiang

网络编程 即时通讯IM

React源码分析4-深度理解diff算法

goClient1992

React

一文梳理vue面试题知识点

bb_xiaxia1998

Vue

Linux网络-基础概念

可口也可樂

Linux 网络基础 10月月更

常见的网路设备和网络参考模型,以及常见的网络层协议及数据通信过程

Python-派大星

10月月更

软件测试 | 测试开发 | 测试开发工程师必读经典好书清单,抽奖赠书送福利!

测吧(北京)科技有限公司

测试

阿里前端二面高频react面试题

beifeng1996

React

ReactDOM.render在react源码中执行之后发生了什么?

flyzz177

React

Linux系统-进程信号

可口也可樂

Linux 信号 10月月更

7 步保障 Kubernetes 集群安全

SEAL安全

Kubernetes 云原生 Kubernetes 集群 企业号十月 PK 榜 审计日志

数通路由交换之网络基础(一)

Python-派大星

10月月更

DOM,Diff算法与Key机制

beifeng1996

React

vue这些原理你都知道吗?(面试版)

bb_xiaxia1998

Vue

视频内容理解在Hulu的应用与实践_AI&大模型_谢晓辉_InfoQ精选文章