泛娱乐应用成为主流,社交与互动性强是共性,而具备这些特性的产品往往都集中在直播、短视频、图片分享社区等社交化娱乐产品,而在这些产品背后的黑科技持续成为关注重点,网易云信在网易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. Mybatis 入门到理解篇

    MyBatis         MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code, ...

  2. 「两」创建一个带 ssh 镜座服务(修订版)--采用 Dockerfile 创

    创建目录 首先,创建一个叫做 sshd_ubuntu 的目录,用于存放我们的 Dockerfile .脚本文件.以及其它文件. $ mkdir sshd_ubuntu $ ls sshd_ubuntu ...

  3. matplotlib:path effects

    import matplotlib.pyplot as plt, matplotlib.patheffects as path_effects 1. normal fig = plt.figure(f ...

  4. Python抓取小说

    Python抓取小说 前言 这个脚本命令MAC在抓取小说写,使用Python它有几个码. 代码 # coding=utf-8 import re import urllib2 import chard ...

  5. 【C语言学习】C语言功能

    代码,功能为了更好地实现模块化编程.那么,什么是函数的性质?在函数中定义的变量(全局变量.局部变量.静态变量)如何存储?为什么范围和全局变量和局部变量的寿命是不一样的?只是有一个更深入的了解的功能.能 ...

  6. 说谎的简单工厂模式设计模式&amp;工厂方法模式&amp;Abstract Factory模式

    工厂模式被分成三个:简单工厂模式,抽象工厂模式和工厂模式. 定义: 简单工厂模式:用一个单独的类来做创造实例的过程. 工厂模式:一个用于创建对象的接口.让子类决定实例化哪一个类,讲一个类的实例化 延迟 ...

  7. Shell脚本入门学习笔记

    1.shell操作系统和用户之间.负责解释命令行 2./etc/shells 记录登录系统有效支持shell 3./etc/passwd 最后,有人谁可以看到用户的默认shell 4.直接输入shel ...

  8. MIME映射(程序映射)

    MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型.是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器 ...

  9. MEF 插件式开发 - WPF 初体验

    原文:MEF 插件式开发 - WPF 初体验 目录 MEF 在 WPF 中的简单应用 加载插件 获取元数据 依赖注入 总结 MEF 在 WPF 中的简单应用 MEF 的开发模式主要适用于插件化的业务场 ...

  10. wpf窗体定位

    原文:wpf窗体定位 据WPF外包小编了解,通常,不需要在屏幕上明确定位窗口.而是简单地将WindowState属性设置为Normal,并忽略其他所有细节.另一方面,很少会将WindowStartup ...