找回密码
 立即注册
LiveVideoStack 首页 资讯 查看内容
  • QQ空间
  • 回复
  • 收藏

人工智能在视频应用领域的探索(一)

2018-1-16 17:02

人工智能热度很高,但泡沫也很大。人工智能在视频领域的应用已经走入寻常人的生活,人脸识别,视频自动抠像技术已经比较成熟。除此之外,人工智能还能为视频应用带来哪些变化呢?鲍金龙撰文,描述了人工智能在视频应用中的实践探索,涉及编解码器、超分辨率等。如果你在某一领域有深入探索与洞察,欢迎联contribute@livevideostack.com。


文 / 鲍金龙


序:人工智能来生今世


人工智能是一个非常广泛的领域,当前人工智能涵盖很多大的学科,大致归纳为六个:


  1.  计算机视觉(暂且把模式识别,图像处理等问题归入其中);

  2.  自然语言理解与交流(暂且把语音识别、合成归入其中,包括对话);

  3.  认知与推理(包含各种物理和社会常识);

  4.  机器人学(机械、控制、设计、运动规划、任务规划等);

  5.  博弈与伦理(多代理人agents的交互、对抗与合作,机器人与社会融合等议题);

  6.  机器学习(各种统计的建模、分析工具和计算的方法)。


这里值得强调几点:


第一) 目前的人工智能都是属于弱人工智能的范围,在某一个专业领域内作为被人类使用的工具存在。 目前还不存在离开人类主体自行运行的人工智能,更不存在可以开发人工智能自我迭代进化的强人工智能。


第二) 机器学习在近几年取得了很大进展,有些人直接把机器学习当成了人工智能的代名词。这是不准确的。举例来说,不可否认机器学习在计算机视觉领域发挥着越来越大的作用,但是传统意义上,通过人工建模,分析取得的模式识别,图像识别,图像增强仍旧是很成功的人工智能技术,并且也是机器学习进一步发展的基础。


第三) 统计分析方法在1990年代就出现并在一定领域内使用了。统计分析方法也多种多样的,根据实际需要产生过很多成功的案例,不一定采用目前标准的建模和分析方法。这里面举个典型的例子,在1997年Intel推出mmx技术之前,程序员中流传着一个非常著名的查表IDCT(反余弦变换),实际上就是对MPEG1编解码过程的IDCT变换,做了统计分析后发现的,超过之前所有快速算法的实战案例。具体细节请点击『阅读原文』下载IDCT 8x8.DOC。


第四)机器学习有这几个比较明显的缺陷,想要在实战中取得良好的效果,就必须做出合理的取舍和优化。这几个缺陷是:


  1. 严重依赖数据,训练方法和训练量非常关键。

  2. 计算量偏高。

  3. 虽然有时候取得了良好的效果,但是机器学习本身并不能理解这个过程,也不能给出合理的解释。

  4. 涉及自然科学常识和社会科学常识的问题,目前机器学习还不能在开放领域内取得良好的效果。


(一)人工智能对视频应用的渗透


传统视频应用的流程:



前面我们说过,目前的人工智能还处于工具阶段,也就是说还没有人工智能开发出来的任何的超越时代的编码方法、传输协议、解码、交互技术存在。目前人工智能渗透包括预处理和后处理,超分辨率,机器视觉等等,人们在这些过程中使用人工智能工具来提升开发效率或者处理效果。而编解码技术,则属于人类专家技术团队才能解决的问题,目前的人工智能还很难介入。



近年来网络直播应用的兴起,出现了跟以往广播电视编解码不太一样的需求。那就是:


  1. 编码端,保证编码实时性和码率的要求的同时,保证尽量高的图像质量。

  2. 发送,传输,缓冲,延时尽量小。

  3. 解码器尽量能输出最好的质量,最好能超分辨率。


这两年我一直在努力把人工智能(主要是机器学习)技术跟编解码做更深的融合,用来解决传统方法一直很难解决的这几个问题。


编码器遇到的问题:硬件编码器性能好,但是图像质量差,码率高。软件编码器效率较低,遇到复杂视频,比如物体繁多,较大运动,闪光,旋转,既不能满足实时编码的需求,同时输出码率也出现较大抖动。对于网络应用来说是很大的障碍。


解码器需要增强的点:大家都在构想能不能应用超分辨率技术,把较低分辨率的视频的播放质量提升一大块。目前有很多算法显示出巨大的潜力,比如谷歌的RAISR,处理图像时候效果很好。能不能实时用到视频上,或者硬件化,或者采用更快的能实时运行的算法。我们在后面会讨论一种折中方案,在牺牲一点质量的前提下,能够实时运行的超分辨率算法。



(二)人工智能增强的编码器


(2.1)动态编码器


不同场景下编码保持恒定质量的码率:

 


编码时间和码率是正相关的,在码率暴涨的同时,编码时间也剧烈延长。对于低延时需求强烈的直播应用,会造成严重的卡顿。


一般就只好使用绝对不变码率ABR. 不同场景下ABR的图像质量:



这样带来的结果就是图像质量不稳定。


我们希望是下图这样的曲线:



这就需要编码器能够提前判定大码率场景出现的可能性。需要判定的几种情况:


  1. 物体繁多且有摄像机运动。

  2. 背景不动但是有大量物体的大范围运动,包括快速运动,旋转,仿射,蠕变等。

  3. 出现闪光,风沙,粒子系统。


这就需要开发一种适用于高清晰度直播应用的面向场景的智能编码技术。该技术通过监督学习将常见视频编码卡顿场景分类并快速识别,提前预判视频场景的编码复杂度和码率抖动,使用动态参数配置来编码,保证编码的实时性和限定码率下最好的图像质量。


(2.2)内容自动植入



这里讨论广告的自动植入问题。一种是在编码前合成到视频里面,这个过程跟编码关系不大。但是直接合成到视频之后,所有的观众看到的内容就都一样。


要做到个性化,精准的广告投放,就只有在播放端解码后合成。要做到这点,服务器不仅要发送原始视频流,还要发送后期合成物体的定位方法和图像数据,以便客户端按照需求进行动态合成。


首先,自动植入的广告跟前贴片比起来优势很明显,可以植入的广告数量非常巨大,效果也更自然,用户也不会产生明显的反感。


其次,个性化精准投放,又进一步扩大了广告投放的总容量和效率。


原作者: 鲍金龙 来自: LiveVideoStack
文章点评
相关文章