10 月,开发者不可错过的开源大数据大会-2021 WeDataSphere 社区大会深圳站 了解详情
写点什么

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

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:49498

评论

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

云计算防火墙对象(组)的实践

Python研究所

云计算 防火墙 对象组

Python OpenCV 之图像乘除与像素的逻辑运算,图像处理取经之旅第 17 天

梦想橡皮擦

Python OpenCV 4月日更

【死磕JVM】给同事讲了一遍GC后,他要去面试,年轻人,就是容易冲动!

牧小农

JVM 垃圾回收 垃圾收集 垃圾回收算法

Hive相关的总结

大数据技术指南

hive 4月日更

用 Sublime Text 编辑 Markdown

U+2647

sublime-text markdown 4月日更

Linux chmod命令

一个大红包

4月日更

智慧公安重点人员管控系统搭建,助推公安智慧化发展

13828808769

区块链+ #区块链#

区块链赋能文化旅游,推动旅游行业转型升级

13828808769

区块链 #区块链#

区块链BaaS平台,创造不一样的服务

电微13828808271

区块链+

架构训练营模块1作业-江哲

江哲

作业

树莓派简介

IT蜗壳-Tango

IT蜗壳教学 4月日更

Kafka又出问题了!

冰河

kafka 消息队列 消息中间件 异步编程

大数据计算生态之数据计算(一)

小舰

4月日更

打完新冠疫苗后要注意的两件事

石云升

28天写作 新冠疫苗 4月日更

从小白程序员到大厂高级技术专家我看过哪些书籍?

冰河

程序员 程序人生 冰河 推荐书单

区块链BaaS平台+BI大数据系统

电微13828808271

区块链+

机器学习 | 数据缩放与转换方法(1)

披头

不想写代码偷懒之配置化

顿晓

前端 配置化开发 4月日更

区块链技术推动自然资源领域信息化发展

13828808769

区块链+ #区块链#

架构实战营-模块1-作业

泄矢的呼啦圈

架构实战营

Redis split-brain 脑裂

escray

redis 学习 极客时间 Redis 核心技术与实战 4月日更

重点人员可视化管理平台搭建,公安指挥调度平台

13823153121

基于角色访问控制RBAC权限模型的动态资源访问权限管理实现

crudapi

spring security 权限 rbac crudapi 角色

Kafka的再平衡机制

五分钟学大数据

kafka 4月日更

配置化开发是否可行?

顿晓

重构 配置化开发 4月日更

“圈粉”行业龙头 数字人民币搅动投资江湖

CECBC区块链专委会

数字人民币

Java一套拳法刷掉n个遍历树的问题 John 易筋 ARTS 打卡 Week 43

John(易筋)

ARTS活动

聪明人的训练(三)

Changing Lin

4月日更

智慧党建系统搭建,干部管理平台开发

13823153121

制作颜色选择器(全)

空城机

JavaScript Vue 前端 4月日更 颜色选择器

重构: 自己挖的坑自己填

夏兮。

Java 重构 测试 单元测试

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