技术解析 | ZEGO 移动端超分辨率技术
即构超分追求:速度更快、效果更好、码率更低、机型更广。
超分辨率(Super Resolution, SR)是从给定的低分辨率(Low Resolution, LR)图像中恢复高分辨率(High Resolution,HR)图像的过程,是计算机视觉的一个经典应用。SR 是指通过软件或硬件的方法,从观测到的低分辨率图像重建出相应的高分辨率图像。在直播、点播、监控设备、视频编解码、卫星图像遥感、数字高清、显微成像、视频复原和医学影像等领域都有重要的应用价值。
超分辨率在广义上包含三种技术方向:
1)单帧图像超分辨率放大;
2)多帧连续图像重建超分辨率单帧图像;
3)视频序列的超分辨率重建视频帧。
本文侧重单图像超分辨率放大,主要是用大量的高清图像和低质图像数据对的先验知识,基于深度学习技术进行低质图像的高频信息的复原。
一、移动端超分面临的挑战
业界主流基于深度学习的超分模型参数量在 300K 以上,FLOPs 在 100G 以上,在普通 GPU 显卡上,都很难做到 30 帧每秒(640x360 放大2倍到 1280x720),在移动端上只能处理单帧图片,且不能用于实时通话中。
所以,如何让超分在移动端实时跑起来,将是个巨大的挑战:
1、移动端实时视频分辨率比较低(640x480 左右),而移动手机显示屏分辨率一般都比较高(1920x1080,甚至到 2340x1080),如 Apple 13 Pro Max 显示屏分辨率为 2778 x 1284;
2、每帧处理耗时要低于30毫秒(640x360 超分到 1280x720),否则会有明显的卡顿;
3、超分处理后,图像或视频相对于没开启超分,有明显的主观、客观质量提升。
那么,基于深度学习的超分网络模型设计也需要面临挑战:
挑战一:网络模型参数量过大,一般都大于 500K;
挑战二:模型运算量过大,推理时非常慢,一般都大于 100G FLOPs;
挑战三:超分区别于其他计算机视觉如目标检测与跟踪技术,不能对输入的图像或视频进行缩小。
图1:Urban100数据上各个超分PSNR示意图,横坐标是模型的参数量,纵坐标是模型在Urban100数据集上的PSNR。为了便于和业界公开论文,在公开数据集上比较,大家都使用PSNR/SSIM来评价图像质量。
通过图1我们可以看到,即构的超分技术,无论是轻量级模型,还是极小轻量级模型,客观数据表现不俗,并且在即构的产品应用中,能覆盖 Android 和 iOS 手机 2500+ 款机型。
那么,即构是如何解决上述的问题呢?
二、即构超分技术
经实测,近十年公开报道的超分技术无一能在移动端实时通话中运行起来,更不能谈及覆盖更广的移动端机型,而业界最低运算量(PAN2020[4])的超分模型,也很难实时跑起来,使得机型覆盖率极度有限,某友商超分任务覆盖不足 50 款指定高端旗舰机型,而某大厂基于谷歌 RAISR 方法优化的效果不足以保证。
图1中的 IMDN2019([1]) 是 AIM2019 Challenge on Efficient Super-Resolution 比赛冠军,RFDN2020([5]) 和 PAN2020([4])则分别是 AIM2020 冠军和亚军,也仅仅能在 NVIDIA GeForce 1080ti 显卡上实时跑,移动端不能奢想。
为了解决这个问题,我们需要一些原则来指导模型的设计,主要从以下三个方面思考:
1)指导模型设计:什么样的模型才是最好的候选网络模型,以减少训练次数;
2)极轻量级模型设计:在适配移动端设备时,主客观效果相对于大模型不显著下降,且显著优于传统插值放大算法;
3)模型量化压缩及加速,及工程化。
2.1 指导模型设计
考虑到 GPU 资源有限、任务多,所以要尽可能的设计一个直达任务目标的极小网络模型,且节约 GPU 资源。
北京某超算中心的提供的 2 卡 V100-32G 云服务,每小时 6 元,则一个月的费用是7x24x30x6元=30240元/月。所以当我们设计了一个模型,花了很长时间好不容易训练出来,结果在移动端没法实时,也是浪费算力和人力。
那么我们如何能在不做任何训练的情况下,从仅有的一些模型数据中,寻找真正所需要的移动端网络模型呢?
图2:不同架构模型设计下的参数量与运算量
图2中,不同颜色的曲线表示不同架构下的超分模型,曲线上的点则表示不同深度和宽度的模型下的参数量和运算量。实际设计模型,还需要加入更多维度,如输入图像的宽高、特征图的通道数等。
那么是不是可以总结为我们要去寻找 Params 大,而 FLOPs 小的网络模型?
Params 大则网络模型表现力强, FLOPs 小则运行速度快(不一定准确,依赖于推理库,若模型中操作算子是常规的操作算子,则大概率是正确的)。若上面推断正确,则上述图2表明:绿色代表的超分模型强于红色,也强于蓝色,那么,我们就需要设计出越来越陡的曲线模型。对每种设计的模型,训练一个epoch,然后移植到移动端测试实际性能,而“抖“的上确界在哪里,就需要实验数据来支撑。
这就给了我们一个设计网络模型的指导方向:参数量尽可能的多,而运算量尽可能的少,并结合实测数据,探测较优的、可能实时的候选模型。
依据这样的原则,我们就能够对所设计的网络模型选择一个合理的方向,然后基于选定的方向,找到适合在移动端实时运行的模型的深度和宽度等参数。
另外,算法选型也是一种考验,开源的超分足够多,但落地产品化的极少,产业界不乏大厂,有如下方案:
1)基于 RAISR(Google,2016) 本质就是一般传统的基于机器学习的哈希算法,根据低分辨率图像块里的内容和几何特征对其进行分类,最后利用机器学习算法,学习低分辨率图像块和高分辨率图像块之间的关系,得出重建矩阵,基于 RAISR 进行裁剪优化,效果得不到保证。
2)基于 SRGAN (Christian Ledi, 2016)以及变种方法进行优化时,往往鲁棒性不足,受到很大噪声干扰,特别是实时视频中出现的各类噪声。所以在移动端基于 GAN 的超分鲁棒和实时很难兼顾,特别是 Android 机型。
3)基于视频超分,需要两帧做光流(或块匹配)、对齐、融合,非常耗时,对于不能裁剪缩小的原始输入帧,要想在 Android 机型上实时超分,几乎是不可能的。而去掉光流或对齐,则效果很难保证,还会导致超分后的视频偏模糊,对比 2019~2020 的轻量级的两帧视频超分,很多效果还不如单帧超分,特别是运动稍大或灯光闪烁或颜色渐变场景。
4)注意力机制,在超分应用中虽改善了主观效果,但非常耗时、性价比很低。
3.2 轻量级模型设计
一般来说,轻量级超分模型设计架构如下:
图3:轻量级超分网络模型架构
如何设计轻量级([1]~[11])的超分网络模型呢?
优化BasicBlock 基础块,调整Skip Connection,并且让每个卷积基础块都能充分发挥其功效而不冗余。但是这样的网络模型,在参数量、运算量极度限制的情况下,卷积个数屈指可数,特征通道数也极度有限。那么我们又该如何设计?
1) 优化基础残差块:让每个卷积l发挥关键性的、不冗余的作用,1x1 和3x3 卷积是必然首选。让通道内部、通道之间进行特征信息共享,降低参数量、运算量,有效提取特征、重建;
2) 优化模型设计框架:大模型训练,等价或几乎等价小模型推理,但不限于单纯的知识蒸馏等技术,并且还需结合量化做训练。
3) 操作算子的选择:尽可能选择前馈推理库支持的操作算子,否则很耗时;
4) 优化损失函数:蒸馏损失、梯度损失、TV损失、DCT损失、FFT损失、特征信息损失等;
5) 优化训练技巧和数据集:结合实际视频业务流程,懂视频编解码,制作适合业务的训练数据集,而不是单纯的调参。实际业务中,60%靠数据,30%靠网络模型,10%靠调参训练技巧,三者互为补充。
3.2.1 优化基础残差块
图4:优化基础残差块过程
以上仅仅是优化基础残差块,做各种对比实验(主客观对比实验、整体耗时、各个操作算子耗时等),择优选择出适合自己业务逻辑的优化方向。
当设计极轻量级网络的时候,卷积的个数往往屈指可数的,就导致NAS方法(Neural Architecture Search)没有实际意义,在落地应用时实测更加耗时。同理,模型剪枝实际意义不大,特别是对极轻量级的网络模型。
3.2.2 模型框架设计
图5:PAMS2020[11]
PAMS2020[11]这篇超分文章也给了我们一个思路:
1)量化及支持量化的推理库,2bit量化及支持2bit量化的前馈推理库是至关重要的,2bit量化结合大模型训练小模型推理,带来了很大的效果和性能优化空间,而不用苦苦追寻性价比下确界;
2)结构化特征信息知识损失;
3)引申出大模型训练,等价小模型推理。
3.2.3 其他优化
根据实际业务需求,利用视频图像常识做训练数据和损失函数:
1) 平坦区域总是远远高于非平坦区;
2) 人眼对平坦区超分或其他增强是无感的,而密集纹理区增强是感知强烈的;
3) 深度学习任务中,训练数据的重要性远大于网络模型设计;
基于以上基础知识,优化的知识点就出来了,无论是损失函数的设计,还是数据集的设计,即使无法涨点,但是能够提升主观质量。
3.3 模型压缩及加速
分两方面:
1) 模型压缩:对于非常小的极度轻量级的模型,剪枝、网络搜索等策略大多不太适用;
2) 模型加速:分为以下3点
A. 量化(PQT/QAT)与支持量化的推理库,需要自研支持量化的前馈推理库;
B. 硬件加速,比如使用高通的 DSP(SNPE)、各个厂家的 NPU/APU、苹果的 ANE 等;
C. 支持量化的硬件加速;
对于很多大模型来讲,量化后精度的下降可接受,而极小模型对精度非常敏感,精度稍微下降,主观质量也会有明显的下降。
三、基础对比实验
图6:近几年超分辨率现有技术的各个指标数据,640x360两倍放大到1280x720,数据来源于其论文或开源或复现
从图6各个数据集上可以看出,ZEGO 超分表现卓著:
1、ZEGO 大模型,优于 IMDN 2019(AIM 2019冠军),参数量是 IMDN 的一半,FLOPs 也是其一半;
2、ZEGO 大模型,相比于 RFDN2020(AIM2020冠军),PSNR/SSIM 略低,但参数量是它的一半,FLOPs 是其三分之二;
3、ZEGO 小模型,5.848K 参数量下,优于 SESR-M3;
4、ZEGO最新极小极小模型,0.972K 参数量,0.24422G 的FLOPs,性能很接近于双立方插值,而 Set5 上的PSNR/SSSIM为 36.5431/0.9536,还是显著优于双立方插值的 33.66/0.9299。
四、未来展望
高分辨率的视频能提供更清晰的画面和更高阶的感官体验,对于提升视频质量和用户视觉感受有很大的帮助。ZEGO 即构科技发布移动端实时超分辨率技术,帮助客户获得畅爽的视频体验,致力于打造更高水平的图像恢复和图像增强。
未来,即构超分将继续进行算法性能优化,提升视频效果,做到 ——
更快,极低功耗,极低耗时!
更好,提升视频主观质量!
更低,结合编解码,实现高清画质下的极低码率!
更广,覆盖更多机型!
附:参考文献
[1] IMDN2019: Hui, Z., Gao, X., Yang, Y., Wang, X.: Lightweight image super-resolution with information multi-distillation network. In: ACM Multimedia. pp. 2024–2032. ACM (2019)
[2] LapSRN2017: Lai, W., Huang, J., Ahuja, N., Yang, M.: Deep laplacian pyramid networks for fast and accurate super-resolution. In: CVPR. pp. 5835–5843. IEEE Computer Society (2017)
DRCN2016: Kim, J., Lee, J.K., Lee, K.M.: Deeply-recursive convolutional network for image super-resolution. In: CVPR. pp. 1637–1645. IEEE Computer Society (2016)
[3] SESR2021: Bhardwaj, Kartikeya and Milosavljevic, Milos and O'Neil, Liam and Gope, Dibakar and Matas, Ramon and Chalfin, Alex and Suda, Naveen and Meng, Lingchuan and Loh, Danny: Collapsible Linear Blocks for Super-Efficient Super Resolution. (2021)
[4] PAN2020: Zhao, Hengyuan and Kong, Xiangtao and He, Jingwen and Qiao, Yu and Dong, Chao: Efficient image super-resolution using pixel attention.ECCV2020
[5] RFDN2020: Jie Liu, Jie Tang, Gangshan Wu: Residual Feature Distillation Network for Lightweight Image Super-Resolution. AIM2020
[6] SMSR2020: Longguang Wang, Xiaoyu Dong, Yingqian Wang, Xinyi Ying, Zaiping Lin, Wei An, Yulan Guo: Exploring Sparsity in Image Super-Resolution for Efficient Inference.2020
[7] Saeed Anwar, Salman Khan, and Nick Barnes. A deep jourworks. In Proceedings of the IEEE conference on computer ney into super-resolution: A survey. ACM Computing Survision and pattern recognition, pages 1646–1654, 2016. 5, 6 veys (CSUR), 53(3):1–34, 2020.
[8] Zhang, Y., Li, K., Li, K., Zhong, B., Fu, Y.: Residual non-local attention networks for image restoration. In: ICLR (Poster). OpenReview.net (2019)
[9] Zhang, K., Nan, N., Li, C., Zou, X., Kang, N., Wang, Z., Xu, H., Wang, C., Li, Z., Wang, L., Shi, J., Gu, S., Sun, W., Lang, Z., Nie, J., Wei, W., Zhang, L., Niu, Y., Zhuo, P., Kong, X., Sun, L., Wang, W., Timofte, R., Hui, Z., Wang, X., Gao, X., Xiong, D., Liu, S., Gang, R.: AIM 2019 challenge on constrained super-resolution: Methods and results. In: ICCV Workshops. pp. 3565–3574. IEEE (2019)
[10] Zhang, K., Danelljan, M., Li, Y., Timofte, R., et al.: AIM 2020 challenge on efficient super-resolution: Methods and results. In: European Conference on Computer Vision Workshops (2020)
[11] PAMS2020: Li, Huixia and Yan, Chenqian and Lin, Shaohui and Zheng, Xiawu and Li, Yuchao and Zhang, Baochang and Yang, Fan and Ji, Rongrong: PAMS: Quantized Super-Resolution via Parameterized Max Scale. Springer.2020.
技术解析 | ZEGO 移动端超分辨率技术的更多相关文章
- 腾讯QQ空间超分辨率技术TSR
腾讯QQ空间超分辨率技术TSR:为用户节省3/4流量,处理效果和速度超谷歌RAISR 雷锋网AI科技评论: 随着移动端屏幕分辨率越来越高,甚至像iPhone更有所谓的“视网膜屏”,人们对高清图片的诉求 ...
- Google 超分辨率技术 RAISR
每天都有数以百万计的图片在网络上被分享.储存,用户借此探索世界,研究感兴趣的话题,或者与朋友家人分享假期照片.问题是,大量的图片要嘛被照相设备的像素所限制,要嘛在手机.平板或网络限制下被人为压缩,降低 ...
- 【超分辨率】—图像超分辨率(Super-Resolution)技术研究
一.相关概念 1.分辨率 图像分辨率指图像中存储的信息量,是每英寸图像内有多少个像素点,分辨率的单位为PPI(Pixels Per Inch),通常叫做像素每英寸.一般情况下,图像分辨率越高,图像中包 ...
- 浅谈AI视频技术超分辨率
泛娱乐应用成为主流,社交与互动性强是共性,而具备这些特性的产品往往都集中在直播.短视频.图片分享社区等社交化娱乐产品,而在这些产品背后的黑科技持续成为关注重点,网易云信在网易MCtalk 泛娱乐创新峰 ...
- 全面解密QQ红包技术方案:架构、技术实现、移动端优化、创新玩法等
本文来自腾讯QQ技术团队工程师许灵锋.周海发的技术分享. 一.引言 自 2015 年春节以来,QQ 春节红包经历了企业红包(2015 年).刷一刷红包(2016 年)和 AR 红包(2017 年)几个 ...
- 【超分辨率】- CVPR2019中SR论文导读与剖析
CVPR2019超分领域出现多篇更接近于真实世界原理的低分辨率和高分辨率图像对应的新思路.具体来说,以前论文训练数据主要使用的是人为的bicubic下采样得到的,网络倾向于学习bicubic下采样的逆 ...
- 基于稀疏表示的图像超分辨率《Image Super-Resolution Via Sparse Representation》
由于最近正在做图像超分辨重建方面的研究,有幸看到了杨建超老师和马毅老师等大牛于2010年发表的一篇关于图像超分辨率的经典论文<ImageSuper-Resolution Via Sparse R ...
- 基于 Asp.Net的 Comet 技术解析
Comet技术原理 来自维基百科:Comet是一种用于web的技术,能使服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求,目前有两种实现方式,长轮询和iframe流. 简单的说是一种基于现 ...
- 新手入门:史上最全Web端即时通讯技术原理详解
前言 有关IM(InstantMessaging)聊天应用(如:微信,QQ).消息推送技术(如:现今移动端APP标配的消息推送模块)等即时通讯应用场景下,大多数都是桌面应用程序或者native应用较为 ...
- Web端即时通讯技术原理详解
前言 有关IM(InstantMessaging)聊天应用(如:微信,QQ).消息推送技术(如:现今移动端APP标配的消息推送模块)等即时通讯应用场景下,大多数都是桌面应用程序或者native应用较为 ...
随机推荐
- 面试官:Dubbo一次RPC请求经历哪些环节?
大家好,我是三友~~ 今天继续探秘系列,扒一扒一次RPC请求在Dubbo中经历的核心流程. 本文是基于Dubbo3.x版本进行讲解 一个简单的Demo 这里还是老样子,为了保证文章的完整性和连贯性,方 ...
- 2 手机号登录时,调的不是login接口,而是注册的一个接口
手机号登录时,调的不是login接口,而是注册的一个接口
- 构建基于Java Spring Boot和Uniapp的心理小程序:从零到一的完整指南
构建基于Java Spring Boot和Uniapp的心理小程序:从零到一的完整指南 前言 大家好,今天我们来聊聊如何使用Java Spring Boot和Uniapp构建一个心理小程序.这个项目不 ...
- .Net4.5及.Net Core2.1下的HttpClient使用详解
一.HTTP系列演进 方式 说明 HttpWebRequest .NET早期版本,同步方式 WebClient HttpWebRequest的封装简化版,同步方式 HttpClient .NET4.5 ...
- 在.NET Web API设置响应输出Json数据格式常用的两种方式
前言 在ASP.NET Core Web API中设置响应输出Json数据格式常用以下两种方式:可以通过添加System.Text.Json或Newtonsoft.JsonJSON序列化和反序列化库在 ...
- 【云服务器】记录使用腾讯云服务器搭建个人blog网站-【1】服务器配置
服务器购买 第一次写博客,写的不好请见谅 腾讯云教育活动 配置还行,能搭建个网站了果断下单 选择系统 缺点(对我来说):参考于:人生不开窍:Windows Server各版本差异 不能安装window ...
- UDP协议测试
UDP协议测试 我们一般想到测试连通性时第一考虑到的就是使用ping命令. 但是我们知道ping命令使用的是icmp协议,属于tcp/ip协议中的一个子协议,所以我们可以用ping或tcping命令来 ...
- web3产品介绍:mask将Web3的隐私和优势引入像Facebook和Twitter这样的社交媒体平台
介绍: Mask Network是一个开源的浏览器扩展,将Web3的隐私和优势引入像Facebook和Twitter这样的社交媒体平台.它是一个功能强大的工具,允许用户在社交媒体上享受区块链的隐私保护 ...
- 【DataBase】MySQL 31 游标
游标 Cursor 游标是用来存储查询的结果集的数据类型,也称为是光标 在存储过程和函数中可以使用光标对结果集进行循环的处理 光标的使用包括1.声明,2.开启,3.关闭,4.Fetch 游标仅用于存储 ...
- 【OracleDB】 10g 安装(Windows)
Win7系统环境建议右键[管理员身份运行] - 指明选择的安装目录在哪[只更换盘符即可,对官方默认的目录不更改] - 安装类型选择企业版 - 安装Oracle的同时创建数据库服务[数据库] - 口令即 ...