300 + 明星创业公司,3000 + 行业人士齐聚
全球人工智能与机器人峰会 GAIR 2017
,一 同见证 AI 浪潮之巅!峰会抢票火热进行中。
今天特放出
5
个
直减 1300 元的无条件优惠券
(见文末),
在浏览器打开优惠券链接立即使用。
雷锋网按:
视频直播行业在前几年迎来了井喷式爆发,随着人工智能技术的逐渐成熟,视频的解决方案也在不断完善,例如大数据、智能追踪、直播互动、广告精准推荐等,这些都在潜移默化中提升视频的用户体验,并且也给视频行业带来了新的商业模式。
那么人工智能在视频应用场景中究竟能发挥哪些作用?二者结合能带来哪些新的商业应用?
本期硬创公开课,雷锋网邀请到了 Video++ 人工智能事业部研发 Team Leader 张奕为大家讲解人工智能在消费级视频场景中的应用。
嘉宾简介
张奕:Video++ 人工智能事业部研发 Team Leader,中科院博士,研究领域包括深度学习、多媒体、计算机视觉、模式识别及视频处理,原美国 Autodesk 研究院计算机视觉专家,拥有数项技术发明专利,在 ICPR、ICVR 等知名国际会议及 Journal of Multimedia 等国际期刊中发布过数篇论文。
Video++ 专注于消费级视频大流量场景的 AI 科技公司,以视觉识别和大数据为基础,实现视频场景匹配和广告自动投放,实现在视频中的购物,百科,虚拟植入,卡牌互动,投票,发红包等互动功能,为观众提供新型的互动体验。
截至日前,服务的 10000 多家企业包括乐视视频、芒果 TV、爱奇艺、风行网、浙江卫视中国蓝等综合平台,斗鱼直播、战旗直播、熊猫直播等直播平台,以及 Zealer、日日煮、小李子足球等垂直网站和社区,每月为平台提供超过 101 亿次的服务。
以下内容整理自本期公开课,雷锋网做了不改变原意的编辑:
大家好,我是来自 Video++ 团队的张奕。Video++ 成立 2 年多来,一直致力于消费级视频领域的技术产品的研发,利用人工智能技术实现视频内容的分析和识别。今天就给大家分享一下 Video++ 团队利用人工智能技术在消费级视频垂直领域的应用的技术和心得。
一、消费级视频的特点
消费级视频作为视频的一个子类,当然具有相对于静态图像所具有的特点。即在时间维度上,能够对内容识别提供重要的帮助,是统计算法斟酌如何有效利用的重要因素。具体有以下特点:
数据量大
类别多样
场景复杂
一般而言,视频一般分为两大类:消费级视频和工业级视频。工业级视频指的是利用固定设备在固定条件、固定场景下拍摄的视频。常见的有安防视频。很显然,消费级视频相对于前者而言更加复杂。下面就来看一下其相对于其他视频产品的不同。
1、数据量大
这是消费级视频的第一个特点。随着互联网的发展壮大,很多产品的数据都通过互联网和云端进行传输和存储。数据量大也使得消费级视频的商业价值的潜力变得巨大,与此同时这也给人工智能算法处理提出了更高的要求。算法运行时,必须考虑到计算的速度,且要在合理的时间里对大量的数据进行分析和处理。
2、类别多样
再来看消费级视频的第二个特点。其实其本身可分为很多种类,如电影、综艺、体育和广告,还有这两年非常火的直播、短视频等等。这些子类的消费者视频的内容形式之间又存在着很大的差异,所以也给不同子类的通用算法提出巨大的挑战。
3、场景复杂
上文也提到,工业级视频由于条件固定,所以场景单一,而消费者视频则来源多样,后期还有很多加工,从而场景更加复杂。在消费者视频里,经常能看到场景的切换、缩放和拼接,还有字幕,淡入淡出等功效设置。在很多消费者视频中,如舞台综艺节目的频繁移动,交接的改变,都会对整体或者局部产生模糊。以上因素都会对人工智能分析视频内容产生一定程度的干扰,这就要求人工智能算法需要具备更高的鲁棒性,以减少这些因素带来的干扰。
二、人工智能的发展与消费级视频的分析
再来了解一下人工智能技术在消费级视频领域的应用,以及过去、现在和将来会达到什么程度。
人工智能在消费级视频中最重要的功能是目标追踪、检测和识别。与工业级视频相比,消费级视频最大的区别在于其需要编辑、策划和互动,这是我们可以介入的地方。像娱乐综艺、在线直播等还有很大的剩余价值有待开发。利用人工智能技术对物体、人脸、场景、品牌进行系列结构筛选后,就能得到这个视频里在何时何地出现了什么人物、物体、场景和品牌的信息。然后再在这一基础上对物体进行结构化,就能产生极大的商业价值。
目前来看,在视频中加入广告等都需要人工操作,如果采用人工智能技术来完成这些工作,则能很大程度节省时间,降低成本。建立视频结构化数据库以后,经过关键词的筛选,用户可以批量化、精准化地进行广告投放,这套系统就能将应用市场、广告电商和消费者关联起来,实现视频商业的结构。
从以上可以看出,人工智能在消费级视频领域具有巨大的商业价值。但是,要实现以上的应用设计,还必须依赖技术的发展。人工智能技术从上世纪 30 年代伊始,至今已有 80 年的发展历程,也经历了好几次的技术飞跃。具体如上表所示,其中最近也是最重要的一次飞跃是在 2010 年——深度学习技术在识别中的应用。
在深度学习技术应用之前,人工智能识别技术也在不断发展,但是在实际应用中,算法准确率与产品商业化要求之间还存在较大的差距。深度学习技术的出现,极大的提升了算法的准确率,拉低了其与产品商业化要求的差距,使得人们看到了人工智能技术近年来在消费级视频等相关领域应用的希望。
三、如何构建基于深度学习的消费级视频分析系统
在这一部分,我将从 Video++ 在消费级视频领域运用人工智能技术的相关实例和心得为大家讲述如何构建基于深度学习的消费级视频分析系统。
大体来看,构建这一系统需要设计算法框架和工程化框架。其中,算法框架是基础。
1、构建基于深度学习的消费级视频分析系统的要素
构建基于深度学习的消费级视频分析系统主要包括三种算法。
首先第一个是深度学习算法。如图所示,其中就包括样本的选择、识别和标注,模型的设计以及训练测量。
其次是计算机视觉 & 图像处理。因为这里涉及消费级视频领域,所以必须借助这一算法对视频进行必要的预处理,从而为深度学习做储备。那么这其中就包括目标检测、跟踪和图像变换。
此外还包括其他一些算法,如统计模型等。
以上算法都是涉及构建消费级视频分析系统需要借助的基础算法,那么,选择算法的标准又是什么?主要与以下两个因素有关:
准确率
速度
消费级视频分析系统除了对准确率要求高之外,由于要分析规模庞大的数据,对处理速度要求也非常的高。不过,这两项指标本身是存在冲突的。因为准确率更高的系统通常需要消耗更高的计算时间,而处理速度快的算法相对而言准确率会更低,所以在设计算法框架时需要在二者之间找到最优的平衡点。
下面我将从深度学习算法框架开始,具体谈谈这个算法中的设计要点。
1)深度学习:样本采集和标注
在研究深度学习算法中,往往最主要关注深度神经网络模型的设计,而训练和测试样本一般是采用公共的数据集,以便和其他的算法进行比较。所以训练样本的采集和标注也不是那么的重要。但是在消费级视频分析系统运用到具体场景的应用中,训练样本的采集和选择就显得尤为重要。这是由深度学习的特点来决定的。
训练一个深度学习模型,需要大量经过良好训练标注的样本。这些样本的质量直接决定了训练所得到的模型的泛化的程度。没有足够多的标注的数据,即使有好的网络模型,也是巧妇难为无米之炊,无法训练出好的结果。
Video++ 在数据收集和标注上积累了大量的数据。数据的收集包括两类重要的方式,一是由专业的团队进行离线的数据收集和标注,作为初始模型的训练数据。二是由离线收集的训练数据得到初始模型,然后在线上测试得到反馈数据,从中挑选错分的样本,再经过人工的标注后,将其加入训练数据集里面,对模型模型进行持续的训练和分析。我们认为在不久的将来,待标注的数据将成为一项技术壁垒,因为它直接决定了训练模型得到的数据的准确率。
样本的收集中还有一个值得注意的问题采集的训练样本必须与应用环境中的样本分布尽量保持一致。以消费级视频分析为例,训练样本必须尽量从消费级视频里收集,最大限度地使训练样本与应用环境样本分布保持一致。如果从其他数据源,如工业级视频或静态图像中获取训练样本,则会降低在消费级视频的测试的准确率。
2)深度学习:模型的选择与设计
标注样本数据之后,我们就要针对应用的类别和样本的特点选择对应的模型类型和训练方式。如单祯的分类应用通常选择卷积神经网络模型,时间序列建模相关的分类应用则选择递归神经网络模型。选定模型类别之后,根据应用的复杂程度和训练样本的大小选择模型的深度。
原则上来说,越深的模型应用效果更好,但前提是要有足够多的样本来支持。另外,更深的模型也会对硬件容量大小提出更高的要求。对于硬件爱好者或者创业初期的公司来说,硬件条件也是选择训练模型的深度需要考量的一个因素。
而训练方式中面临的一个困难选择在于,是用训练样本从头开始训练模型,还是在大规模训练集上得到的通用训练模型的基础之上,再用样本进行数据的微调。这个微调是由训练收集的样本大小来决定的。如果训练样本规模不足,那么可以考虑采用以通用模型作为初始化参数,然后再在收集的样本上进行数据微调的方案。具体有哪些层的参数可以进行微调呢?也是由训练样本规模和应用问题来决定的。
2、视频分析算法总体框架的设计
在训练好了深度学习模型之后,我们并不能完整解决消费级视频的问题。一个端到端的视频分析系统,必须需要计算机视觉和深度学习识别技术的配合。
计算机视觉算法主要负责视频的预处理,包括
视频结构的分割
目标轨迹的提取
目标图像的处理
识别结果的处理
这些工作为深度学习网络模型提供数据输入、计算机视觉和统计算法,还负责对深度网络模型输出的结构进行后处理,生成最真的视频分析结果。
3、工程化
在有了算法架构之后,已经能够实现应用所要求的功能,做成演示系统,但要满足产品化的要求还需要精心设计后的工程构架。工程化的构架所要解决的问题是让算法在生产的高密发状态下生成快速的运行,提供稳定的服务。为了达到这一目的,工程化可以从以下方面进行优化:
首先是算法的并行化。这其中就包括单一算法内部代码的优化和多算法模块之间的并行化。
此外,为了处理高并发,需要设置有效的分布式系统和多任务调度系统。
由于不同的算法模块对 GPU/CPU 的计算资源分配不同,需要对算法模块进行分割,分配不同的 GPU/CPU 资源。
最后还要还需要设置合理的任务优先级处理程序,对高优先级的任务进行及时的相应。
4、以消费级视频中的人脸识别为例