写点什么

深度拆解: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:588242
用户头像
鲁冬雪 GMI Cloud China Marketing Manager

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

关注

评论

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

带你上手全新版本的Webpack 5

华为云开发者联盟

JavaScript json 打包 webpack 模块

敏捷开发你必须知道的7件事

华为云开发者联盟

敏捷开发 软件开发 团队 Agile PM

使用myloader恢复数据教程

Simon

MySQL

ffmpeg 开发环境搭建

webrtc developer

ffmpeg

博睿数据智能监测终端全面升级,计算能力强大、用户体验真实性高

博睿数据

网络协议之:加密传输中的NPN和ALPN

程序那些事

网络协议 程序那些事 ALPN NPN

Redis大集群扩容性能优化实践

vivo互联网技术

数据库 redis 性能优化 slots

python 头等对象之一,python 函数那些不一般的用法

梦想橡皮擦

10月月更

云原生时代的强强联合:EMQ 映云科技正式加入 AWS 合作伙伴计划

EMQ映云科技

AWS mqtt emq

带你掌握不同平台下,探索JDK源码所需的native方法

华为云开发者联盟

Java jdk 系统 native JDK代码

云算力挖矿分币系统软件开发内容(案例)

云算力挖矿系统开发公司(源码案例)

现成区块链挖矿系统源码开发

现成矿机挖矿系统开发模板

随便讲讲Python图像处理库PIL的使用

Regan Yue

Python 10月月更

Source Map在前端监控中的应用和实践

爱奇艺技术产品团队

大前端

搞懂异地多活,看这篇就够了

Kaito

架构 高可用 后端 容灾 异地多活

云算力矿机租赁挖矿系统软件开发资料(案例)

【LeetCode】 LRU 缓存机制Java题解

Albert

算法 LeetCode 10月月更

👊 【Spring 技术特性】SpringMVC集成Java Bean Validation实现参数检验功能(上)

码界西柚

spring Bean Validation 10月月更

云挖矿分币系统软件开发资料(源码)

矿机挖矿系统软件开发详情(快速上线)

算力挖矿系统开发内容(现成案例)

2021年9月云主机性能评测报告

博睿数据

区块链挖矿系统开发公司(现成源码)

锁仓挖矿软件系统开发模板(源码)

网络安全—如何预防常见的API漏洞

郑州埃文科技

数据中心 API IP地址

你了解微服务的超时传递吗?

万俊峰Kevin

微服务 go-zero 超时 Go 语言 微服务调用链

2021MLB CUP 青少年棒球公开赛·秋季赛从济南拉开战幕

科技新消息

加密数字货币钱包软件系统开发详情(案例)

2021MLB CUP 青少年棒球公开赛·秋季赛泉城开战,DC试训带来新希望

科技新消息

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