泛娱乐应用成为主流,社交与互动性强是共性,而具备这些特性的产品往往都集中在直播、短视频、图片分享社区等社交化娱乐产品,而在这些产品背后的黑科技持续成为关注重点,网易云信在网易MCtalk 泛娱乐创新峰会上重点介绍了超越像素的AI视频黑科技“超分”。
超分辨率(Super-Resolution)通过硬件或软件方法提高原有图像的分辨率,通过一幅或者多幅低分辨率的图像来得到一幅高分辨率的图像过程就是超分辨率重建,可以通过人工智能深度学习将低分辨率视频重建成高分辨率视频模糊图像、视频瞬间变高清,为移动端为用户带来极致视频体验。

什么是超分辨率

广义的超分辨率 (SR, Super Resolution) 是指一类用于提升图像分辨率的技术。这类技术已经存在了很长一段时间,应用也非常广泛。事实上,每当我们需要以不同于原始分辨率的尺寸来显示或存储图像时,就已经使用了SR,只不过使用的是其中最为简单的那类算法而已。
随着图像处理理论的发展,以及机器学习的普及和更高性能的处理器的出现,各类更优秀的SR算法陆续出现。现在我们提及SR时,往往是特指依靠机器学习来实现的图像放大算法。下文提到SR时也均特指这类算法。它能够提供远超于传统图像放大算法的图像质量。当然,运算量也要高得多。
图1. 将原始图像缩小3倍后分别使用Bicubic (一种传统图像放大算法) 和SRCNN (一种基于CNN的图像放大算法) 进行放大[1]。

超分辨率理论描述

SR算法本质上和传统图像放大算法没什么不同,都是利用已有的图像信息去预测需要的像素点。只不过传统算法的预测模型非常简单,可以通过人工设计的方式实现。例如双线性插值,就是利用目标像素周围的四个点来做预测,离目标位置越近的点权重越大,通过一个简单的公式就能得到结果: f(x,y)=f(0,0)(1-x)(1-y)+f(1,0)x(1-y)+f(0,1)(1-x)y+f(1,1)xy
图2. 双线性插值,通过Q11~Q22这四个点预测点P
而现代SR算法为了得到更精确的预测结果,其预测模型则复杂了很多。一般有多个卷积层和激活层,会利用到目标像素周围很大一片区域的图像信息,包含成千上万个模型参数,纯靠人工设计是不现实的。所以人们才会依靠机器学习的方式来决定参数。这种做法还附带有不少好处。例如你无需对图像处理有深厚的理解就可以训练模型,再比如你可以根据自己的应用场景调整训练集,从而得到更适合你的预测模型。
下图是一个简单的例子,来自经典的超分算法SRCNN[1]。模型基于卷积神经网络,以原始图像为输入,先是用廉价的上采样算法将分辨率提升到期望的大小, 然后经过3层分别为9x9x128,3x3x64,5x5的卷积运算,得到超分输出。
图3. SRCNN网络结构
这几年每届超分竞赛都会出现不少值得借鉴的新理论和新实现,SR的效果上限被不断提高。介绍这些算法的文章有很多,感兴趣的读者可以自行搜索。

什么时候用超分辨率

虽然视觉效果很好,但SR在使用上有几方面限制需要我们注意。其中最重要的就是性能这个硬性指标。即便是极为简单的SR算法,其运算量也是传统放大算法的上千倍,能否满足应用的性能需求是需要经过测试和优化的。
另外,目前的SR算法主要分两个流派,一派的目标是尽可能地还原信息,另一派则允许在不影响视觉体验的前提下对内容进行一些修改。我们需要根据应用场景来选择不同的算法。如果在对图像还原度要求较高的场合下使用了不适当的SR算法,可能带来不好的后果。
图4. 上图左侧为SRGAN模型[2]放大4倍生成的图片,可以看到首饰的纹理被大幅修改。
还有一点,目前的SR算法大都针对自然图像。对于一些特殊的图像,例如因为缩小而失真的文字,直接使用SR算法去放大的效果实际测试下来并不理想。
图5. 直接使用SR并不能较好地还原失真的文字

超分辨率的优势

基于深度学习的超分技术能较好的恢复图像细节. 在视频发送源可能因为种种客观限制, 无法提供高分辨率的视频. 比如摄像头采集能力不足, 网络带宽不足,源端处理能力不足等, 在这些情形下, 如果云端或者接收端的处理能力满足要求, 可以借助超分技术, 对于视频质量做恢复, 呈现给用户高质量的视频. 所以超分技术为在恶劣的客观条件下的视频应用提供了高质量呈现的可能, 是传统的应用借助人工智能技术提升使用体验的一种典型落地场景.

网易云信在超分辨率的实践

网易云信提供了点播直播和实时音视频等技术能力。 支持的终端包括Windows PC, MAC, iPhone, iPad, Android手机, 机顶盒, 智能手表等可穿戴设备。其中可穿戴设备, 机顶盒等终端的成本控制比较严格, 通常CPU处理能力相对较弱, 无法支持高清, 甚至标清的视频规格, 但是作为这些终端的使用者, 它们依然希望看到高清或标清的视频质量, 接收的终端可能是PC或者性能较好的手机, 平板电脑等设备,他们自己可能有能力提供优秀的计算资源。在这种场景下, 网易云信可以在接收的终端上通过超分辨率技术, 恢复视频质量,极大地提升了移动端用户的体验。如果接收的终端本身运算能力不足以支撑深度学习, 但是有能力处理高清视频的解码, 网易云信依然可以在云端对低分辨率的视频进行处理, 采用包括超分在内的技术,对质量恢复后,将高质量的视频提供到接收终端。
尤其针对弱网情况,云信将在云端或者接收终端通过超分技术对质量进行补偿, 为用户呈现超高质量视频。云信通过人工智能深度学习将低分辨率视频重建成高分辨率视频模糊图像、视频瞬间变高清,为移动端为用户带来极致视频体验。
[1] C. Dong, C. C. Loy, K. He, and X. Tang. Learning a deep convolutional network for image super-resolution. In European Conference on Computer Vision (ECCV), pages 184–199. Springer,
2014.
[2] Ledig C, Theis L,Huszar F, et al. Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network[J]. 2016:105-114.
 

想要阅读更多技术干货、行业洞察,欢迎关注网易云信博客

了解网易云信,来自网易核心架构的通信与视频云服务。

d

浅谈AI视频技术超分辨率的更多相关文章

  1. 浅谈iOS视频开发

     浅谈iOS视频开发 这段时间对视频开发进行了一些了解,在这里和大家分享一下我自己觉得学习步骤和资料,希望对那些对视频感兴趣的朋友有些帮助. 一.iOS系统自带播放器 要了解iOS视频开发,首先我们从 ...

  2. 搞懂分布式技术21:浅谈分布式消息技术 Kafka

    搞懂分布式技术21:浅谈分布式消息技术 Kafka 浅谈分布式消息技术 Kafka 本文主要介绍了这几部分内容: 1基本介绍和架构概览 2kafka事务传输的特点 3kafka的消息存储格式:topi ...

  3. 浅谈Android保护技术__代码混淆

    浅谈Android保护技术__代码混淆   代码混淆 代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为.将代码中的各种元 ...

  4. 浅谈分布式消息技术 Kafka(转)

    一只神秘的程序猿. Kafka的基本介绍 Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可 ...

  5. 浅谈分布式消息技术 Kafka

    Kafka的基本介绍Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/ngin ...

  6. 浅谈C# .Net技术面试 , 正在找工作的人一定要看看

    1.引子 最近一直在负责.net(B/S方向)技术面试相关的工作,前前后后面试了不少人,但是通过率较低,大概只有20%左右:有颇多感慨. 最近也一直比较困惑,原因究竟是什么? 是我们要求太高,应聘者本 ...

  7. 浅谈企业IT技术运营中台

    关注嘉为科技,获取运维新知 如果你是IT圈内的人,在2月份,你的朋友圈里面最火的词应该就是“中台”了,我们在此不讨论企业的技术中台.数据中台.AI中台.业务中台,想和大家讨论一下IT技术运营中台. “ ...

  8. 浅谈短视频APP的发展趋势

    2014年6月20日,在AppAnnie最新发布5月应用指数中,美拍荣登“非游戏类iOS榜单”全球下载量第一位置,成为全球iOS应用商店最热门APP.能在<AppAnnie应用指数>这份A ...

  9. 浅谈Java分页技术

    话不多言.我们要实现java分页技术,我们首先就需要定义四个变量,他们是: int  pageSize;//每页显示多少条记录 int pageNow;//希望现实第几页 int pageCount; ...

随机推荐

  1. Objective-C block实现代码分析

    block内部结构 让我们写一个block void exampleBlock() { // NSConcreteStackBlock int a = 1; __block int b = 2; in ...

  2. Editplus配置Python的开发环境

    Python 有很多集成开发工具,商业的有komodo,Wingide,Boa 等,还有Python 自带的集成环境IDLE,Windows 下还有PythonWin 等.但是,这些工具有的是过于复杂 ...

  3. 【狼窝乀野狼】Parallel浅尝辄止

    前段时间看到园子里面有同学在用Parallel进行批量插入数据库.后面也有很多同学针对这一事件给出了自己的看法和见解.我在这里不评论内容的好坏,至少能将自己东西总结分享这个是要靠勇气和毅力. 闲话少说 ...

  4. js调查server

    <script type="text/javascript"> function showUnreadNews() { $(document).ready(functi ...

  5. 首个 C++ 编译器诞生 30 周年了,来听听 C++ 之父畅谈 C++

    原文  http://www.iteye.com/news/31076   C++ 之父 Bjarne Stroustrup 在 cfront 诞生 30 周年的访谈. 整整30年前,CFront 1 ...

  6. WMWaire使用FreeNAS硬盘挂载、Raid0

    FreeNAS硬盘挂载.Raid0 发表于2012 年 03 月 28 日由admin 创建成功,FreeBSD的Hardware显示状态 今天,我们将在VMware工具的帮助下,学习“FreeNAS ...

  7. WPF 流打印

    原文:WPF 流打印 PrintDialog printDialog = new PrintDialog(); if (printDialog.ShowDialog() == true) { Syst ...

  8. WPF中ItemsControl应用虚拟化时找到子元素的方法

    原文:WPF中ItemsControl应用虚拟化时找到子元素的方法  wpf的虚拟化技术会使UI的控件只初始化看的到的子元素, 而不是所有子元素都被初始化,这样会提高UI性能. 但是我们经常会遇到一个 ...

  9. 图像滤镜艺术---球面(Spherize)滤镜

    原文:图像滤镜艺术---球面(Spherize)滤镜 球面(Spherize)滤镜 球面滤镜是通过极坐标变换实现图像的球面特效. 代码如下:         //         ///        ...

  10. 什么是YAML?

    YAML是"YAML不是一种标记语言"的外语缩写 [1] (见前方参考资料原文内容):但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名.它是一种直观的能 ...