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…...

深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...