旷视low-level系列(二):Practical Deep Raw Image Denoising on Mobile Devices

在这里插入图片描述

论文:ECCV 2020
代码:https://github.com/MegEngine/PMRID

文章目录

  • 1. Motivation
  • 2. Contribution
  • 3. Methods
    • 3.1 噪声建模&参数估计
    • 3.2 k-Sigma变换
    • 3.3 移动端友好的网络结构
  • 4. Experiments
  • 5. Comments

1. Motivation

业内周知,基于深度学习的去噪算法在效果上已经甩传统算法几条街了,但是由于模型计算量太大和设备算力不够等因素导致落地困难。为了解决上述问题,旷视的这篇论文提出了一个轻量级的、高效的神经网络去噪模型,能够在移动设备上流畅运行,并且能够获取高质量的去噪结果。

2. Contribution

  • 提出了一种噪声估计和构造合成数据用于训练传感器特定的去噪神经网络的系统方法;
  • 提出了一种新颖的k-Sigma变换,将不同ISO下的噪声图像映射到ISO不变的信号-噪声空间。在该空间中能够训练一个单一的小网络来处理具有不同噪声水平的图像,而不是针对每个ISO单独训练一个小网络或者训练一个能够覆盖所有ISO的大网络;
  • 提出了一种用于高效去噪的移动端友好的网络结构。

3. Methods

3.1 噪声建模&参数估计

在噪声建模部分,作者首先回顾了入射光子到数字信号的转换过程,该过程包含多个阶段,每个阶段都会引入特定的噪声。
在这里插入图片描述
考虑一个没有噪声的理想系统,光子到数字信号的转换可以由一个简单的线性模型表示: x ∗ = g α μ ∗ (1) x^*=g\alpha\mu^*\tag{1} x=μ(1)其中, μ ∗ \mu^* μ为探测器接收到的期望光子数,即不考虑光的量子性质; α \alpha α为量子效率,其定义为光电探测器等设备将其受光表面接收到的光子转换为电子-空穴对的百分比,即量子效率等于光生电子除以入射光子数,通常用QE(quantum efficiency)表示; g g g为模拟增益。

考虑各个阶段引入噪声的情况下,转换过程如下 x = g ( α μ + n d ) + n r (2) x=g(\alpha\mu+n_d)+n_r\tag{2} x=g(αμ+nd)+nr(2) μ \mu μ为探测器实际接收到的光子数,服从泊松分布: μ ∼ P ( μ ∗ ) (3) \mu\sim\mathcal{P}(\mu^*)\tag{3} μP(μ)(3)另外,根据Poisson-Gaussion噪声模型,可以假设 n d ∼ N ( 0 , σ d 2 ) n_d\sim\mathcal{N}(0, \sigma_d^2) ndN(0,σd2) n r ∼ N ( 0 , σ r 2 ) n_r\sim\mathcal{N}(0, \sigma_r^2) nrN(0,σr2)

结合公式 (1)~(3),有: x ∼ ( g α ) P ( x ∗ g α ) + N ( 0 , g 2 σ d 2 + σ r 2 ) (4) x\sim(g\alpha)\mathcal{P}(\frac{x^*}{g\alpha})+\mathcal{N}(0,g^2\sigma_d^2+\sigma_r^2)\tag{4} x()P(x)+N(0,g2σd2+σr2)(4)
形式上与Poisson-Gaussion噪声模型是一致的。令 k = g α k=g\alpha k= σ 2 = g 2 σ d 2 + σ r 2 \sigma^2=g^2\sigma_d^2+\sigma_r^2 σ2=g2σd2+σr2,则有: x ∼ k P ( x ∗ k ) + N ( 0 , σ 2 ) (5) x\sim k\mathcal{P}(\frac{x^*}{k})+\mathcal{N}(0,\sigma^2)\tag{5} xkP(kx)+N(0,σ2)(5)可以看到, k k k σ 2 \sigma^2 σ2都与模拟增益 g g g有关,即都是由ISO决定的。

建立的噪声模型需要估计参数 k k k σ 2 \sigma^2 σ2 ,这里采用的是经典的光子转移曲线,即均值-方差曲线:
在这里插入图片描述

论文中通过采集多张灰阶卡的方式计算均值和方差:
在这里插入图片描述
Reno-10x在不同ISO设置下 k k k σ 2 \sigma^2 σ2参数标定的结果:
在这里插入图片描述
获取ISO- k k k和ISO- σ 2 \sigma^2 σ2的关系后,可以很容易地计算出任何ISO设置下的噪声参数,因此合成噪声数据时可选的ISO是连续而非离散的。

3.2 k-Sigma变换

在实际应用中,相机会根据场景照度自动调整ISO,因此在训练去噪网络时需要考虑不同的噪声水平。通常会训练单个网络来覆盖宽泛的ISO,这对网络的学习能力有一定的要求,需要一个大网络才能hold住。为了让小网络具备与大网络相当的去噪能力,作者提出了k-Sigma变换,将网络的输入噪声图像与ISO解耦,降低映射复杂度。

作者这里定义了一个k-Sigma变换,经过变换后网络的输入(即带噪声图像)和输出(即干净图像)之间的映射仅由高斯分布即可表示,并且与ISO无关,对于网络来说拟合难度大大降低。
在这里插入图片描述

3.3 移动端友好的网络结构

在这里插入图片描述
ISO独立去噪pipline:原始噪声图像先进行k-sigma变换,输入网络中去噪,输出再做一个逆变换得到最终的去噪图像。在训练阶段,计算逆变换后的去噪图像与无噪声图像的MAE作为loss。
在这里插入图片描述
作者也设计了一个轻量级的网络,为了降低计算量,只在输入和输出阶段使用正常卷积,其他层都使用深度可分离卷积。

4. Experiments

训练集的构造方式:基于SID的干净图像,从建立的噪声模型中采样噪声,加在干净图像上得到噪声图像。
训练设置:随机裁剪1024x1024的patch,使用BayerAug进行随机翻转,然后打包成512x512x4,随机调整亮度和对比度。
在这里插入图片描述
从实验结果中可以看到,基于k-sigma变换的方法在不同ISO下都表现良好。

5. Comments

亮点:通过k-sigma变换降低数据映射复杂度,小网络的去噪效果就能媲美在普通数据上训练的大网络
局限:k-sigma变换依赖于Poisson-Gaussion噪声模型,低光环境下大概率不适用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/660617.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

信息安全管理体系

本文已收录至《全国计算机等级考试——信息 安全技术》专栏 信息安全管理体系(Information Security Management Systems)是组织在整体或特定范围内建立信息安全方针和目标,以及完成这些目标所用方法的体系。它是直接管理活动的结果&#xff…

力扣经典题:用栈表示队列

1.在元素入栈完成时,再出栈进入到另一个栈的时候,另一个栈的栈顶元素就是队列的队尾元素 2.初始化操作完全与上一题相同 3.peek函数的实现:将1的思路写出来,再返回第二个队列的栈顶元素 4.pop函数就是将peek函数进行实现后将to…

[嵌入式软件][启蒙篇][仿真平台] STM32F103实现SPI控制OLED屏幕

上一篇: [嵌入式软件][启蒙篇][仿真平台] STM32F103实现LED、按键 [嵌入式软件][启蒙篇][仿真平台] STM32F103实现串口输出输入、ADC采集 [嵌入式软件][启蒙篇][仿真平台]STM32F103实现定时器 [嵌入式软件][启蒙篇][仿真平台] STM32F103实现IIC控制OLED屏幕 文章目…

HIS预约挂号系统源码 看病挂号快人一步

提到去大型医院机构就诊时,许多人都感到恐惧。有些人一旦走进医院的门诊大厅,就感到迷茫,既无法理解导医台医生的建议,也找不到应该去哪个科室进行检查。实际上,就医也是一门学问,如何优化时间分配&#xf…

AIGC专题:从0到1精益创新 AIGC产品应用及商业化落地实践

今天分享的是AIGC系列深度研究报告:《AIGC专题:从0到1精益创新 AIGC产品应用及商业化落地实践》。 (报告出品方:易点天下) 报告共计:38页 企业内部增效-AI知识库 企业内部IT、运维、人力资源、行政等等日…

都 2024 年了!程序员的到底出路在哪里!?继续卷技术?晋升管理层?还是转业?

都 2024 年了!程序员的到底出路在哪里!?继续卷技术?晋升管理层?还是转业? 1)程序员的难处2)程序员专业方向3)大数据3.1.大数据开发涉及到哪些技术3.2.大数据开发涉及到的…

C语言assert断言详解指针(3)

各位少年,大家好,我是博主那一脸阳光,今天分享assert法官的断言,指针宝箱的使用。 前言:如果你在计算机的世界中触犯了语法法规,那么编译器就要上线了,就会出现报错。然而想想我们在现实中设计到…

仰暮计划|“一周一顿的玉米面和白面蒸的糕点,是当时所能吃到的极好的食物”

平淡又记忆深刻的一生 口述人:元奶奶 整理人:宋佳音 口述人基本信息:女 出生于1958年,今年65周岁,祖籍东北,现定居于上海,已从制药厂退休十余年。 元奶奶的自述: 我出生于1958年…

B样条基函数

​定义:令U{u0,u1,…,um}是一个单调不减的实数序列,即ui≤ui1,i0,1,…,m-1。其中,ui称为节点,U称为节点矢量,用Ni,p(u)表示第i个p次(p1阶)B样条基…

asp.net core通过读取配置文件来动态生成接口

如果希望接口是每次通过配置文件生成的,这样设计一些低代码的方式来获得接口。 系统目录结构: 启动配置代码: using Microsoft.AspNetCore.Hosting; using System.Configuration; using System.Data.Entity; using Swashbuckle.AspNetCore.…

[Python] 什么是PCA降维技术以及scikit-learn中PCA类使用案例(图文教程,含详细代码)

什么是维度? 对于Numpy中数组来说,维度就是功能shape返回的结果,shape中返回了几个数字,就是几维。索引以外的数据,不分行列的叫一维(此时shape返回唯一的维度上的数据个数),有行列…

【学网攻】 第(14)节 -- 动态路由(EIGRP)

系列文章目录 目录 系列文章目录 文章目录 前言 一、动态路由EIGRP是什么? 二、实验 1.引入 实验步骤 实验拓扑图 实验配置 看到D开头是便是我们的EIGRP动态路由 总结 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交换机认识及使用【学…

阿里云智能集团副总裁安筱鹏:企业数字化的终局是什么?

以下文章来源于数字化企业 ,作者安筱鹏博士 回答数字化终局追问的起点是,企业需要重新定义我是谁。成为有竞争力的行业领导厂商,你应当成为一个客户运营商,即能够实时洞察、实时满足客户需求,追求极致的客户体验。而要…

版本管理工具git: 谨慎使用git中的撤回操作

文章目录 一、背景二、解决方案1、步骤一2、步骤二 三、参考 一、背景 昨天代码分支提交错了,idea中使用了如下操作,结果代码不见了 二、解决方案 1、步骤一 使用git reflog命令,查看提交记录,找到之前commit操作的哈希值 …

雾锁王国Enshrouded个人专服怎么搭建?怎么多人联机一起玩?

前面跟大家分享了『零基础也可以10秒开服幻兽帕鲁,只需要鼠标点击几下即可自动部署』一文,大家可以快速搭建属于自己的幻兽帕鲁专服。现在我们同样可以在10秒搭建雾锁王国专服,让您与朋友一起合作战胜强大的Boss。 雾锁王国:你是火…

Docker本地部署可编辑开源导航页并发布公网分享好友可访问

文章目录 1. 使用Docker搜索镜像2. 下载镜像3. 查看镜像4. 启动容器5. 浏览器访问6. 远程访问6.1 内网穿透工具安装6.2 创建远程连接公网地址6.3 使用固定二级子域名地址远程访问 今天和大家分享如何使用Docker本地部署一个开源的简约风格网址导航页,支持五种搜索引…

基于C++的面向对象程序设计:类与对象的深入剖析

面向对象程序设计的基本特点 面向对象程序设计的基本特点包括:抽象、封装、继承、多态。 抽象 抽象是指对具体问题或对象进行概括,抽出其公共性质并加以描述的过程。一般情况抽象分为数据抽象和行为抽象,其中数据抽象是指一个对象区别于另…

C++/数据结构:二叉搜索树的实现与应用

目录 一、二叉搜索树简介 二、二叉搜索树的结构与实现 2.1二叉树的查找与插入 2.2二叉树的删除 2.3二叉搜索树的实现 2.3.1非递归实现 2.3.2递归实现 三、二叉搜索树的k模型和kv模型 一、二叉搜索树简介 二叉搜索树又称二叉排序树,它或者是一棵空树&#xff0…

IDEA的properties默认编码是UTF-8但是不显示中文

问题描述 今天打开IDEA项目,发现messages_zh_CN.properties不显示中文了 但奇怪的是target下的文件就是展示的中文 而且我IDEA已经配置了编码格式是UTF-8了 使用nodepad打开源文件,也是展示编码格式是UTF-8 (打开target下的文件,…

硅谷仿制网易云小程序登录问题解决

引言: 尚硅谷视频中的登录拥挤问题,导致无法登录,所以,我去gitee上从新找了个别人搞好点网易云的api接口【也是比较出名的那个,不想用不行啊,我也试过很多方法都不行】 接口详解网址:网易云音乐…