2024IJCAI | MetalISP: 仅用1M参数的RAW到RGB高效映射模型
文章标题是:《MetaISP:Effcient RAW-to-sRGB Mappings with Merely 1M Parameters》
MetaISP收录于2024IJCAI,是新加坡国立大学(Xinchao Wang为通讯作者)和华为联合研发的新型ai-isp。
原文链接:MetaISP
【1】论文的主要motivation为目前的ai-isp为了提高在不同场景下的泛化性,一味的提增加AI-ISP架构的尺寸和复杂性,导致得到的模型根本无法在侧端(手机端)部署。
【2】论文的主要创新为:提出了一个可以针对不同输入自适应修改"parameters and network architecture"的新型ai-isp。这一点主要是依靠两个模块来实现的。MCCB(Meta Channel Correction Block)学习特征图中层级关系、MSCB(Meta Spatial Correction Block)学习空间注意力图,从而自适应的调整特征图包含的内容。
1. Abstract
SOTA的深度ISP模型通过增加网络的尺寸和复杂性缓解了对不同异质输入的有限泛化能力问题,但也不可避免地导致了网络参数量和FLOPs的急剧增长。为了解决这个问题,本文提出了MetaISP,一个通过"针对不同输入自适应调整参数和结构"以达到优越的图像重构质量的模型。我们的理论主要涉及为不同的输入生成对应的空间/通道注意力矫正矩阵,以帮助分配注意力(即模型应更关注图像的哪些部分)。我们通过“为每张输入图像预测动态权重并把权重与多个可学习的基础矩阵相结合以构建矫正矩阵“的方法实现上述理论。MetaISP在达到最好效果的同时保证了计算高效性。MetaISP在两个大规模数据集上达到了SOTA,在ZRR数据集上,MetaISP达到了23.8dB的PSNR(以9.2%的参数量和10.6%的FLOPs超过了之前的SOTA方法0.19dB);在MAI21数据集上,MetaISP达到了25.06dB(以0.9%的参数量和2.7%的FLOPs超过了之前的SOTA方法0.17dB)
2. Methods
先验知识:self-attention的计算复杂度很高,大概是 O(N2),N是输入序列长度;以SE (Squeeze and Excitation) 模块为代表的一系列基于CNN实现通道注意力机制的方法计算复杂度就比较低,大约是 O(r2) ,r是放缩率。
模型框架图如图1所示

2.1 整体流程
采用U-Net架构保证了模型可以学习到图像特征的底层及高层特征,促进了鲁棒的表示能力。输入是4通道的RAW图 I r a w ∈ R 4 × H / 2 × W / 2 I_{raw}\in \mathbb{R}^{4×H/2×W/2} Iraw∈R4×H/2×W/2 ,输出是3通道的标准RGB图像 I r g b ∈ R 3 × H × W I_{rgb}\in \mathbb{R}^{3×H×W} Irgb∈R3×H×W 。MFEB将 I r a w I_{raw} Iraw提取成 F 0 ∈ R C × H / 2 × W / 2 F_0 \in \mathbb{R}^{C×H/2×W/2} F0∈RC×H/2×W/2 。
到U-Net架构的bottom层之前是4对MCCB和MSCB的堆叠,生成的特征图通道数为 { C , C , C , 2 C } \{C,C,C,2C\} {C,C,C,2C},低通道数意味着卷积核的数量也很少,保证了低计算复杂度。图中的下采样和上采样均使用的是3×3的卷积核和离散小波变换 。残差连接是基于逐像素加法实现的。
2.2 Meta Channel Correction Block (MCCB)
作者在介绍MCCB之前,先提了一嘴2018年很火的通道注意力 。作者说,这篇工作被广泛用于各个low-level的任务中 (包括深度ISP)去捕捉通道间的依赖关系,从而关注富有信息的特征并抑制冗余的特征。通道注意力CA(Channel attention),实现了计算高效性并且把全局信息带入了特征图中。但是,作者认为,CA中使用的计算方式(通道乘法及注意力预测层)过于简单,因此会导致次优的结果。与此同时,作者提到,基于Self-attention改进的算法又面临计算复杂度 O ( N 2 ) O(N^2) O(N2) 过大的问题,因此,作者提出了MCCB模块。
考虑输入的特征图经过层归一化,卷积,GELU之后,得到特征图 X ∈ R C × H × W X\in \mathbb{R}^{C×H×W} X∈RC×H×W被分别投射到高维空间 Y ∈ R K × H × W Y\in \mathbb{R}^{K×H×W} Y∈RK×H×W(获得更丰富的特征)以及预测得到权重向量 { w n } n = 1 , 2 , . . . , N = p ( X ) \{w_n\}_{n=1,2,...,N}=p(X) {wn}n=1,2,...,N=p(X)。矫正矩阵(私以为可以理解为注意力图)的计算方式则为 M = Σ n = 1 N w n ( x ) ϕ ( n ) M=Σ_{n=1}^Nw_n(x)ϕ(n) M=Σn=1Nwn(x)ϕ(n) ,其中, { ϕ n } n = 1 , 2 , . . . , N \{ϕ_n\}_{n=1,2,...,N} {ϕn}n=1,2,...,N为基础矩阵。
后面的流程就不需赘述了,一切如流程图所示。
需要注意的是,MCCB仅仅使用了一些基础矩阵就修正了特征图并应用了动态软权重实现内容自适应的通道变换。MCCB在利用了CA的低计算复杂度的同时,实现了对通道间复杂关系的高效学习。
2.3 Meta Spatial Correction Block (MSCB)
作者在讲MSCB之前,先提了一嘴基于CNN的空间注意力机制。作者指出,使用CNN去学习注意力图强调了相关的空间区域,并且利用参数共享机制降低了计算复杂度,但是,也造成了有限的感受野,阻碍了其建模长范围的像素交互。然后勾连了上一节的SA叙述 (SA可以很好的感受全局信息但是计算复杂度很高,是输入序列长度的平方次),指出SA不适用于ISP任务中的高分辨率图像。
为了利用CNN的低计算复杂度以及SA的全局上下文建模能力,作者提出了MSCB。
如图1所示,MSCB和MCCB的基础架构其实差不多,矫正向量的公式为: V = Σ n = 1 N w n ( x ) ε n V=Σ_{n=1}^Nw_n(x)ε_n V=Σn=1Nwn(x)εn ,其中 ε n ε_n εn 是第n个basis vector。
接下来有一些很细节的点,我们放大一下MSCB看看。

令改变形状后的特征图为 Y Y Y,则Y中的每一行都对应一个通道的特征图, Y Y Y中的每一竖列都对应一个像素在不同通道中的取值。接下来,作者使用公式 S w , h = Y w , h ∗ V ∣ Y w , h ∣ ∣ V ∣ S_{w,h}=\frac{Y{w,h}∗V}{|Y_{w,h}||V|} Sw,h=∣Yw,h∣∣V∣Yw,h∗V来得到空间注意力图,再用逐元素乘法得到输出的 Y ^ = Y ⊗ S \hat{Y}=Y⊗S Y^=Y⊗S ,此处,我理解就是对每个元素使用矫正向量进行矫正。作者指出,这个过程的计算复杂度为 O ( H W ) O(HW) O(HW),是线性复杂度,同时高效利用了特征图的全局信息。

作者可视化了MSCB的注意力图,并指出,U-Net架构不同层级的注意力关注点不同。
3. Experiments
贴一下ZRR数据集的可视化结果图,在颜色上确实贴近GroundTruth.

【思考1】刚看完摘要的时候,我在想:针对不同输入自适应调整参数和结构是啥意思?难道网络权重在测试的时候还可以改变?看到Methods才明白,论文是搞了一些基础矩阵(Basis Matrices),不同的图像产生不同的权重,和矩阵运算得到注意力图,再跟对应层的特征运算,得到修正后的特征(这里以MCCB为例,MSCB也差不多)。这样相当于是对特征做了处理,但是这个处理模块对于不同的图像是不同的,此之谓"动态参数和动态结构"。
【思考2】作者在MCCB和MSCB架构中是怎么同时利用了CNN和SA的?依照我个人的理解,作者其实相当于简化了生成注意力图的过程,他们设计了一些basis matrices/vectors,只需用CNN给出weights就能生成注意力图,这个过程在SA中是 O ( N 2 ) O(N^2) O(N2) 复杂度的。
相关文章:
2024IJCAI | MetalISP: 仅用1M参数的RAW到RGB高效映射模型
文章标题是:《MetaISP:Effcient RAW-to-sRGB Mappings with Merely 1M Parameters》 MetaISP收录于2024IJCAI,是新加坡国立大学(Xinchao Wang为通讯作者)和华为联合研发的新型ai-isp。 原文链接:MetaISP 【1】论文的…...
aws-athena查询语句总结
完全归于本人mysql语句小白,是一点也写不出来,故汇总到此 1. cloudtrail ## 查询事件排序 SELECT eventname,eventtime,count(eventname) as num FROM your_athena_tablename where eventtime between 2024-11-10 and 2024-11-11 group by eventname…...
电信网关配置管理后台 upload_channels.php 任意文件上传漏洞复现
0x01 产品描述: 电信网关配置管理后台是用于管理和配置电信网关的设备,提供了一系列功能来帮助用户监控和管理网络设备。以下是电信网关配置管理后台的主要功能和操作方法。0x02 漏洞描述: 电信网关配置管理系统/bak_manager/upload_channels.php 接口存在文件上传…...
Vue全栈开发旅游网项目(11)-用户管理前端接口联调
联调基本步骤 1.阅读接口文档 2.配置接口地址 3.使用axios获取数据 4.将数据设置到模型层 1.发送验证码联调 1.1 配置接口地址 文件地址:src\utils\apis.js //系统相关的接口 const SystemApis {sliderListUrl:apiHost"/system/slider/list/",//发送…...
react 中 useContext Hook 作用
useContext是一个用于在组件之间共享数据的重要钩子函数 一、跨组件数据共享 1. 简化多层级组件数据传递 例如:在一个具有多层级菜单结构的应用中,如果要将用户权限数据从根组件传递到最深层的菜单项组件,可能需要经过多个中间组件的 prop…...
【HarmonyOS】鸿蒙系统在租房项目中的项目实战(一)
从今天开始,博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”,对于刚接触这项技术的小伙伴在学习鸿蒙开发之前,有必要先了解一下鸿蒙,从你的角度来讲,你认为什么是鸿蒙呢?它出现的意义又是…...
前 K 个高频元素
前 K 个高频元素 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输入: nums [1,1,1,2,2,3], k 2 输出: [1,2]示例 2: 输入: nums [1], k 1 输出: [1]提示: 1 < nums.le…...
【ubuntu】Geogebra
Geogebra 几何作图工具 是一款跨平台的几何作图工具软件, 目前已经覆盖了, windows,android, mac, linux 等操作系统。 Ubuntu 现状 Ubuntu 自带应用市场 Ubuntu 自带应用市场目前只有 Geogebra 4.0 版本, 不能画立…...
vue2和vue3的区别详解
vue2 VS vue3 对比vue2vue3配置脚手架cmd命令行可视化方式创建脚⼿架组件通信props、$emit、provide、$arrts、EventBus等props、$emit、provide、inject、arrts等数据监听watch,computedwatch,watchEffect,computed双向绑定Object.definePropertyProxyAPI⽣命周期四个阶段befo…...
一文读懂LEED绿建
LEED绿建,即获得LEED(Leadership in Energy and Environmental Design)认证的建筑,是一个旨在提高建筑环境性能和健康性能的评估体系。以下是对LEED绿建的详细解读: 一、LEED体系概述 定义:LEED是由美国绿…...
git上feature合并到development分支
git上从development分支拉了一个feature分支开发新内容,development也有新内容在开发,feature分支内容开发完毕后,如何合并feature分支新内容到development分支,要确保不会覆盖development分支的新内容 以下是将 feature 分支的新…...
NVR录像机汇聚管理EasyNVR多品牌NVR管理工具/设备:大华IPC摄像头局域网访问异常解决办法
在当今社会,安全监控已成为各类场所不可或缺的一部分。无论是家庭、学校、商业场所还是公共场所,安全监控设备都扮演着至关重要的角色。在众多监控品牌中,大华IPC摄像头凭借其高清画质、强大功能和卓越稳定性,赢得了市场的广泛认可…...
校园二手交易网站毕业设计基于SpringBootSSM框架
目录 一、引言 二、需求分析 2.1用户需求分析 2.1.1学生用户 2.1.2管理员 2.2系统功能需求 2.3系统非功能需求 2.4技术需求 2.4.1 技术选择 2.4.2系统架构 三、详细设计 3.1系统架构设计 3.2前端设计 3.3后端设计 3.4数据库设计 本文介绍…...
基于大语言模型意图识别和实体提取功能;具体ZK数值例子:加密货币交易验证;
目录 基于大语言模型意图识别和实体提取功能 案例背景 零知识证明过程 具体例子 具体举例(简化) 具体ZK数值例子:加密货币交易验证 定义多项式 承诺 挑战 证明构造 证明验证 结论 zkLLM Zero Knowledge Proofs for Large Language Models 在大模型验证过程中处…...
论文笔记 SuDORMRF:EFFICIENT NETWORKS FOR UNIVERSAL AUDIO SOURCE SEPARATION
SUDORMRF: EFFICIENT NETWORKS FOR UNIVERSAL AUDIO SOURCE SEPARATION 人的精神寄托可以是音乐,可以是书籍,可以是运动,可以是工作,可以是山川湖海,唯独不可以是人。 Depthwise Separable Convolution 深度分离卷积&a…...
机器学习系列----KNN分类
目录 前言 一.KNN算法的基本原理 二.KNN分类的实现 三.总结 前言 在机器学习领域,K近邻算法(K-Nearest Neighbors, KNN)是一种非常直观且常用的分类算法。它是一种基于实例的学习方法,也被称为懒学习(Lazy Learnin…...
贪心算法day 06
1.最长回文串 链接:. - 力扣(LeetCode) 思路:计算每个字符个数如果是偶数个那么肯定可以组成回文串,如果是奇数个就会有一个无法组成回文串,但是在最中间还是可以有一个不是成队的字符这个字符就从多的奇…...
HTML之列表学习记录
练习题: 图所示为一个问卷调查网页,请制作出来。要求:大标题用h1标签;小题目用h3标签;前两个问题使用有序列表;最后一个问题使用无序列表。 代码: <!DOCTYPE html> <html> <he…...
Redo与Undo的区别:数据库事务的恢复与撤销机制
在数据库中,redo 和 undo 是两个非常重要的概念,它们主要用于事务管理和恢复机制,确保数据的一致性和完整性。 下面分别解释这两个概念: Redo(重做) 定义:redo 操作记录了事务对数据库所做的所…...
【话题讨论】AI赋能电商:创新应用与销售效率的双轮驱动
目录 引言 一、AI技术在电商中的创新应用 1.1 购物推荐 1.2 会员分类 1.3 商品定价 1.4 用户体验 总结 二、AI技术提高电商平台销售效率 2.1 订单处理 2.2 物流配送 2.3 产品流转效率 2.4 库存管理和订单管理效率 2.5 实际案例分析 三、挑战和未来发展趋势 3.1…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
