写点什么

深度拆解:CVPR 2024 CAMixerSR 动态注意力分配的超分辨率加速框架

火山引擎多媒体实验室

  • 2024-03-05
    北京
  • 本文字数:1798 字

    阅读完需:约 6 分钟

深度拆解:CVPR 2024 CAMixerSR 动态注意力分配的超分辨率加速框架

随着相关技术和应用的发展,比如超高清屏幕、虚拟现实(VR)等沉浸式体验的增加,用户对超高分辨率图像和视频的需求变得越来越强烈。在这些场景中,图像的质量和清晰度对于提供最佳的用户体验至关重要。超高分辨率不仅能提供更清晰、更真实的视觉效果,还能在一定程度上增强人们的互动和沉浸感,在一些 VR 场景中我们需要 8K 甚至 16K 的才可以满足需求。然而要生成或者处理这些超高分辨率的内容,对算力的要求也是与日增长,对相关算法提出了挑战。


超分辨率是一个经典的计算机底层视觉问题,该问题要解决的是通过低分辨率的图像输入,获得高分辨率的图像输出。目前该领域的算法模型主要是有 CNN 以及 Transformer 两大类别,考虑到实际的应用场景,超分的一个细分领域方向是算法的轻量化。在上述提到的超高分辨率的场景,超分算法的算力消耗问题变得尤为关键。基于此,本文提出了一种名为 CAMixerSR 的超分框架,可以做到内容感知,通过对 Conv 和 Self-Attention 的分配做到计算量的大幅优化。


论文地址:http://arxiv.org/abs/2402.19289


方法


Table 1 不同难易程度内容的超分算力与效果对比


我们在对内容进行分块并且根据处理的难易程度分成了简单、中等、困难三个类型,并且使用不同 FLOPS 的计算单元,Conv 以及 SA+Conv 两种类型进行比较,发现对于简单的模块我们可以利用较少的 FLOPS 进行计算,并且可以得到较为不错的 PSNR 结果,只有在中等以及困难的分块内容中,SA+Conv 的效果优势才较为明显。通过这个实验我们发现,如果对内容进行分块并且动态调整优化处理策略,有可能在保持性能的同时,大幅降低 FLOPS。


图 1 CAMixer 的算法框架


上图是我们方案的整体流程图,可以看到,我们的方案分成了三个部分,包括 Predictor 模块,Self-Attention 模块以及 Convolution 模块。其中的 Predictor 模块是基于局部条件以及全局条件以及对应的线性位置编码函数,通过该模块,我们可以输出 Offsets Maps、Mixer Mask、Spatial Attention、Channel Attention,这些信息在 Self-Attention 模块以及 Convolution 模块的后续计算中进行使用。 CAMixerSR 中网络的主体模块是基于 SwinIR-light 进行优化。对于复杂区域,我们使用 offsets map 来进行更高效的 attention 计算,并且将输入和 V 分成了简单和困难两种分块,从而得到对应的 Q 和 K,并且将他们分别进行计算,得到 attention 部分的 V。Convolution 模块我们使用 depth-wise 进行计算,将 Self-Attention 的结果合并后即可得到我们最后的输出结果。

实验


图 2 Predictor 模块输出的 Mask 可视化结果


图 2 显示了我们的 Predictor 模块的输出结果,可以看到在很多的场景里,不同的区域内容有较为大的差异,并且我们的算法可以精准预测出分块的类型。


表 2 CAMixerSR 在超高分辨率数据集上的实验对比


表 2 和表 3 是 CAMixerSR 与之前高性能超分在超高分辨率数据集上做的实验对比,我们可以看到,在多个数据集(F2K、Tesk2K、Tesk4K、Tesk8K)上,相比经典的 Transformer based 超分方案 SwinIR-light,CAMixerSR 都有比较大的优势,在经过我们的方案优化后,可以做到 PSNR 接近的情况下节约将近一半的 FLOPS 以及参数量 Params。


表 3 CAMixerSR 通用超分辨率数据集上的实验对比


除了超大分辨率的场景,我们的方案在一些通用场景下同样有不错的性能优势,表 3 中我们在一些常见的超分测试集上和一些常见的高性能超分方案进行了测试。


表 4 CAMixerSR 在球面超分辨率数据集上的实验对比


球面内容是一个重要的超高分辨率场景,我们在两个全景超分数据集上进行了测试,甚至不需要通过球面数据集进行训练,仅进行测试的情况下同样发现我们的方案在 PSNR 效果以及性能上都超过了过去的方案。在这项实验中可以表明 CAMixserSR 在沉浸式场景有比较大的收益潜力。

火山引擎多媒体实验室简介


火山引擎多媒体实验室是字节跳动旗下的研究团队,致力于探索多媒体领域的前沿技术,参与国际标准化工作,其众多创新算法及软硬件解决方案已经广泛应用在抖音、西瓜视频等产品的多媒体业务,并向火山引擎的企业级客户提供技术服务。实验室成立以来,多篇论文入选国际顶会和旗舰期刊,并获得数项国际级技术赛事冠军、行业创新奖及最佳论文奖。


火山引擎是字节跳动旗下的云服务平台,将字节跳动快速发展过程中积累的增长方法、技术能力和工具开放给外部企业,提供云基础、视频与内容分发、大数据、人工智能、开发与运维等服务,帮助企业在数字化升级中实现持续增长。

2024-03-05 17:588257
用户头像
鲁冬雪 GMI Cloud China Marketing Manager

发布了 364 篇内容, 共 289.4 次阅读, 收获喜欢 299 次。

关注

评论

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

在阿里巴巴内网找到的一份《Java核心宝典》简直太细了,如获至宝!

Java架构之路

Java 程序员 架构 面试 编程语言

3种缓存读写策略都不了解?面试很难让你通过啊兄弟!

Java架构师迁哥

TRX波场智能合约APP系统开发|TRX波场智能合约软件开发

系统开发

Alibaba Java面试题大揭秘,把这些知识点吃透去面试成功率高达100%

Java架构之路

Java 程序员 架构 面试 编程语言

Swift性能优化分析

ios swift

Nginx做web服务器linux内核参数优化

赖猫

c++ Linux 编程 后台开发 内核

ChaosBlade x SkyWalking 微服务高可用实践

阿里巴巴云原生

微服务 云原生 监控 混沌工程 CloudNative

金九银十Android热点知识!架构师花费近一年时间整理出来的安卓核心知识,送大厂面经一份!

欢喜学安卓

程序员 面试 编程开发 Android进阶 Android开发

刷完这两份pdf轻松拿下了蚂蚁金服、头条、小米等大厂的offer。

Java架构之路

Java 程序员 架构 面试 编程语言

卧槽,牛皮了!某程序员苦刷这两份算法PDF47天,四面字节斩获心仪大厂offer!

Java架构之路

Java 程序员 架构 面试 编程语言

LeetCode题解:45. 跳跃游戏 II,贪心从后向前,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

浅谈ToB市场精细化运营

Linkflow

营销数字化 客户数据平台 CDP 精细化运营

架构师训练营 1 期 -- 第十二周总结

曾彪彪

极客大学架构师训练营

iOS逆向学习(arm64汇编入门)

ios 汇编

你敢信?就是这个Netty的网络框架差点把我整疯了,哭jj

996小迁

Java 架构 面试 Netty

二层交换机和三层交换机之间VLAN的区别

某Javva程序员金秋9月靠这份文档涨薪10K,你把这份Java进阶文档吃透涨薪超简单!

Java架构之路

Java 程序员 架构 面试 编程语言

中国SaaS的病与痛?

ToB行业头条

如何通过易观Argo,免费快速搭起精细化运营平台?

易观大数据

4项探索+4项实践,带你了解华为云视觉预训练研发技术

华为云开发者联盟

AI 华为云 modelarts

性能之巅:定位和优化程序CPU、内存、IO瓶颈

华为云开发者联盟

性能 cpu 优化

安卓开发不得不会!啃下这些Framework技术笔记,成功入职阿里

欢喜学安卓

android 程序员 编程开发 Android进阶

linux命令:查询占用端口文件所在位置

梁小航航

Linux

小熊派开发实践丨小熊派+合宙Cat.1接入云服务器

华为云开发者联盟

IoT 小熊派 实践

华为工程师:扔掉你手里的其他Netty资料吧,有这份足以

小Q

Java 学习 面试 Netty 网络

测试右移之日志收集与监控

BY林子

敏捷 软件测试

大厂iOS面试题全面讲解(上)

ios 面试

架构师训练营第一期 - 第十一周学习总结

卖猪肉的大叔

极客大学架构师训练营

足不出户带你体验专业实验室,技术实现不在话下

华为云开发者联盟

体验 平台 实验

六度空间软件系统开发|六度空间APP开发

系统开发

不为人知的网络编程(十):深入操作系统,从内核理解网络包的接收过程(Linux篇)

JackJiang

Linux 网络编程 TCP/IP

深度拆解:CVPR 2024 CAMixerSR 动态注意力分配的超分辨率加速框架_字节跳动_InfoQ精选文章