直播预约通道开启!2021腾讯数字生态大会邀您共探产业发展新机遇! 了解详情
写点什么

超分辨率在移动实时音视频的应用实践

2019 年 11 月 29 日

超分辨率在移动实时音视频的应用实践

在 RTC 2019 实时互联网大会上,声网 Agora AI 算法工程师周世付,分享了超分辨率应用于移动端实时音视频场景下,遇到的难点、通用解决方法,以及解决思路。


近年来,超分辨率(简称超分)在图像增强、去噪、细节恢复、图像放大方面展现出广阔的应用前景,成为计算机视觉领域的研究热点,受到学术界和工业界的关注和重视,业界也纷纷举办超分竞赛,比如优酷的视频超分竞赛、声网的图像超分竞赛和深圳市政府举办的 AI+4K HDR 竞赛,旨在吸引更多的人参与超分算法的研究和促进超分算法的落地。因为超分算法的大规模应用落地还存在一些亟需解决的问题。


移动端实时超分的难点

目前,移动端实时音视频应用目前存在的一个痛点问题是传输的视频分辨偏低,而终端显示屏的分辨率高,存在分辨率不匹配的问题。实时传输的视频分辨率普遍偏低,是由于受到传输带宽的限制和实时性的要求。低分辨率视频不能有效的展现图像细节,因而带来的用户体验有限。为了解决传输视频与终端显示屏分辨率不匹配的问题,通常的做法是将低分辨率视频进行放大。


传统最常用的放大方法是插值法,如 bicubic、nearest、bilinear 等,优点是速度快,但缺点也很明显,即图像放大后,图像存在模糊、细节丢失的现象。



而随着深度学习的出现,基于深度学习的超分已经成为了新的解决方案,也是学术界与工业界都在研究的方法。它能有效地恢复图像的细节,并保持图像清晰度。但基于深度学习的超分算法在落地应用的过程中,也面临着挑战,主要表包括:(1)超分模型过大;(2)超分算法运算复杂。



超分与 Bicubic 对比


目前学术界有两个经典超分模型 SRGAN 和 ESRGAN,如下表所示,我们列出了两个模型的参数量和算法复杂度。SRGAN 和 ESRGAN 的参数量分别达到 150 万和 1600 万,所需要的存储空间分别是 6MB 和 63MB。对于移动设备来说,模型太大,会占用过多存储。


再看运算复杂度方面。以 360x480 大小的图像作为输入,进行 4 倍的放大,SRGAN 和 ESRGAN 的运算复杂度分别可以达到 446GFLOPs 和 3100GFLOPs。而目前主流的手机 iphone XR 的 gpu 的运算能力大约为 500GFLOPs。由此可见,目前的移动设备的运算能力,还无法实时运行现有的超分模型,需要降低模型的算法复杂度和减小模型的体积,才能可能让实时超分模型在移动设备实时运行。



如何降低算法复杂度与模型体积?

降低模型的算法复杂度和减小模型的体积的方法,通常是模型压缩和模型加速。模型压缩的目的,是通过减小模型中冗余的权重,去掉对模型性能贡献小的分支,从而达到减小模型的参数量,降低模型的运算量。而模型加速,则是侧重降低卷积运算的开销,提高卷积运算的效率,从而提高模型的运行速度。模型压缩和模型加速,是相辅相成的,通过合理的模型压缩算法和模型加速算法的结合,能够有效地减小模型体积和提高模型的运算速度。


模型压缩方法,可以分为权重优化和模型结构设计。权重优化也可分为剪枝和量化。


剪枝,是将模型中冗余的权重去掉,以达到模型瘦身的目的。比如,Deep compression[1],通过权值剪枝、权值量化和权值编码,能够将模型的体积减小 49 倍。


权重量化,则将权值以低码率进行存储,从而减小模型的体积,比如,XNornet[2]模型,对输入的 featuremaps 和权值均进行二进制量化,实现 58x 的模型压缩和 32 倍的加速。


经典的轻量级模型有 suqeezenet[3]、mobilenet[4]和 shufflenet[5]。他们从模型结构设计角度来讲,通常会采用小卷积核替代大卷积核,如用 3x3 替代 5x5、7x7, 或者 1x1 替代 3x3。在同等条件下,3x3 的运算是 5x5、7x7 的 9/25、9/49,而且 1x1 是 3x3 的 1/9。


模型加速方法,在 convolution 的基础上,衍生出了 depth-wise convolution、group convolution,point-wise convolution。在 mobilenett 模型中,大量使用了 depth-wise convolution 和 point-wise convolution。而在 shufflenet 模型中,则采用了 group convolution 和 point-wise convolution。



在以上的研究基础之上,声网也自研了超分算法。声网的超分模型的体积,比 mobilenet v2 还要小。对 360p 的图像进行 2 倍的放大时,其运算复杂度小于 2GFLOPs,可实现在移动设备上的实时运行。在运算速度和超分效果实现较好的前提下,有效地提高移动实时音视频的用户体验。


本文转载自公众号声网 Agora(ID:shengwang-agora)。


原文链接:


https://mp.weixin.qq.com/s/oBrrGAnXvAU4Y2hUfy2R4g


2019 年 11 月 29 日 16:49437

评论

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

双非渣硕,开发两年,苦刷算法47天,四面字节斩获offer

云流

Java 程序员 架构 面试 算法

拿到字节跳动offer后,简历被阿里捞了起来,二面迎来了P9"盘问"

菜菜山

Java 程序员 架构 面试

如何基于MindSpore实现万亿级参数模型算法?

华为云开发者社区

算法 mindspore 万亿级参数 大模型

情指勤一体化实战平台建设解决方案,公安情指勤系统开发

WX13823153201

强化学习 | COMA

行者AI

人工智能

别不信!掌握好这20条Linux基础命令,让你的操作效率直接双倍

java专业爱好者

Java Linux

吹爆!阿里新产Spring Boot高级笔记,肝完变秃也变强

神奇小汤圆

Java 架构 面试 微服务

面试官问我:如何减少客户对交付成果的质疑

华为云开发者社区

Scrum 敏捷开发 项目 用户故事 研发

bzz分币系统开发,矿机挖矿系统搭建,云算力挖矿平台开发

WX13823153201

K8S调试利器:telepresence2使用文档

互联网架构师小马

奇亚节点分币系统搭建,Bzz节点分币APP搭建

13823153121

ipfs矿机目前可以投资吗?ipfs矿机值得投资吗?

投资矿机v:IPFS1234

ipfs矿机目前可以投资吗 ipfs矿机值得投资吗

jenkins-01 | 安装

Python测试和开发

持续集成 jenkins CI/CD

中国政府大数据市场,我们又是第一

浪潮云

云计算

年中面试经历:美团2面+字节3面+阿里4面+腾讯Java面经,终入字节

云流

Java 程序员 架构 面试

接口全面重构TypeScript ,让uni-app 具备出色的基础音视频能力

ZEGO即构

typescript uni-app 音视频开发

从零开始学习3D可视化之物体选择

森友小锘

前端 可视化 程序媛 3D可视化 数字孪生

搭建企业私有GIT服务

IT视界

git

微服务到底是什么?spring cloud在国内中小型公司能用起来吗?

Java架构师迁哥

ipfs前景怎么样?ipfs有什么运用价值?

投资矿机v:IPFS1234

IPFS有什么运用价值 ipfs前景怎么样

联邦学习—金融数据壁垒和隐私保护的解决之道

索信达控股

金融科技 联邦学习 金融 数据隐私 大数据平台

ipfs项目是真实的吗?ipfs和http的区别在哪里?

v:IPFS456

ipfs项目是真实的吗? ipfs和http的区别在哪里?

熬夜复习90天,4面阿里Java研发成功上岸定级P6,分享我的面试过程

菜菜山

Java 编程 程序员 架构 面试

🌏【架构师指南】分布式技术知识点总结(中)

李浩宇/Alex

分布式架构 架构师技能 分布式技术 6月日更 6 月日更

阿里P8大佬码出25大后端面试指南,2000道面试题解析助力金九银十

Crud的程序员

Java spring 编程 架构

卧薪尝胆30天!啃透京东大牛的高并发设计进阶手册,终获P7意向书

云流

Java 程序员 架构 面试 高并发

冷门科普类自媒体如何才能脱颖而出

石头IT视角

为了不写接口文档,我肝了个 IDEA 插件

程序员小毕

Java 程序员 架构 面试 开发工具

面试官:Spring@Transaction注解是如何执行事务的?

Java王路飞

Java spring 源码 架构 面试

2021斩获45K月薪的Spring全家桶:文档+面试题+学习笔记+思维导图

Crud的程序员

Java spring springboot SpringCloud

在windows上用Nginx做正向代理

Python测试和开发

网络 Proxy 正向代理

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

超分辨率在移动实时音视频的应用实践-InfoQ