ISP去噪(2)_np 噪声模型

#灵感# ISP 中的去噪,都需要依赖一个噪声模型。很多平台上使用采集的raw进行calibration,可以输出这个模型,通常称为 noise profile。

目录

名词解释:

标定方法:

校准出的noise profile:

noise profile 作用域:

噪声曲线——原理:

噪声和清晰度调试:

名词解释:

Noise profile 似乎可以翻译成噪声档案,其含义是某个噪声源(sensor)在不同工作条件下所表现出来的噪声特性的集合,一般将其表示成增益(gain)的函数。

噪声校准工具的目的是表征某个传感器模块的时间噪声行为。该评估产生了噪声水平函数,其描述了时间噪声标准偏差与像素强度的关系。

为啥是标准差:由于噪声是亮度变化,所以最好用标准差统计量来测量它。从现在起,当提到噪声量时,我们将讨论图像亮度变化的标准差(通常用希腊字母σ表示),标准偏差是方差的平方根,方差表示为σ²

标定方法:

方法1:

我们在进行噪声标定时,会根据不同的ISO进行分段标定;锚定几个固定的ISO50100 400 10002000....)进行噪声标定,锚点之间的ISO通过线性插值来计算噪声强度。

一般来说,我们会使用24色卡来进行噪声标定,使用三脚架固定好相机,然后连续等曝光N张图片,N的参考取值为32或者更多,对N张连续曝光的图片进行平均,这个平均后的图片被当作真实信号  ,则噪声信号可以表示为 ,对  求方差,就可以获得噪声模型。我们在实验室,调节灯箱的亮度,使得在固定ISO的情况下,噪声标定的像素范围能够覆盖信号的范围(10bit-->[0, 1023]。------在raw 图工具中核对最大值和最小值。

方法2:

在camera 视野中放置灰卡,D65或D50灯光从一侧垂直打光。改变光源亮度,使sensor 的曝光增益覆盖 1x/2x/4x/8x/16x/32x/64x等常用的ISP调试档位。分别对每个增益进行抓图,一般需要10-50张raw 图。所捕获的raw图亮度需要布满整个range, 比如10bit-->[0, 1023]。有些校准可以不布满,但需要手动选择raw的 亮度 range,进行校准输出np 模型后,再扩展模拟出整个range的噪声曲线。 

校准出的noise profile:

第一种-常见:

Noise profile在校准后一般不建议修改。数据长度一般为64,或者 128。第一个数值到最后一个数值分别对应亮度等级为0-255的降噪值,数值越大说明降噪强度越大。

第二种-高通:

noise profile : Chromatix工具基于在几个勒克斯级捕获的图像生成数据,较大的值导致更多的去噪,level 0,1-高频噪声,level 2,3-低频噪声,(level 2,3,4,5-低频噪声 for 8996)。-----有待考证

noise profile 作用域:

参考noise profile的生成方法,在raw denoise设计降噪算法会稍微容易一些,在不同的亮度进行不同强度的降噪,或者把噪声归一化,都有利于保护细节。

但noise profile并不是单纯用在denoise这一个模块上,还可以用在时域降噪、demosaic等模块上。(实际使用时,很多ISP也都是以YUV domain降噪为主体)。

噪声曲线——原理:

此段内容来自:微信公众号『大话成像』,图解噪声与去噪之三:噪声建模与去噪。

拍一张Grey scale chart 的照片。camera拍照可以得到如下图像1

  

可以看到,图像上有很多噪声,对这个图像做横切,然后可以得到pixel value 相对intensity的显示图

   

继续拍n张照片:把n张照片求平均得到一张照片,把所有图片的像素的值显示在一个图里可以看到

 

中间的实线是图像均值,所有被虚线包围的红色的点,是所有图像的像素值。按照图解噪声与去噪第一讲里的方法(也在“大话成像”微信公众号里),画出像素标准差对均值的曲线可以得到下图左

 

从上左图可以看出:

  1. 噪声随着亮度的增加而增加。
  2. 标准差与均值遵循一定的函数关系。

如果把多组实验的结果叠加可以得到上右图。--------------也是校准工具会输出的一种NP曲线图。

噪声和清晰度调试:

(1)先调试画面中心平坦区,在保留一定细节的前提下,让平坦区的noise表现与target相近,这部分主要调试NR部分。-----------可以理解为保留细节的程度。

(2)调试EE或其它锐化模块,使边缘及细节表现与target接近。

基于的理论:对于画面中的平坦区域,认为像素变化主要是由噪声引起的,可以加大降噪力度;对于画面中的纹理区域(textured area),认为像素变化主要是由纹理引起的,噪声只占较小部分,需要控制降噪力度,尽量保持图像的纹理特征。

(3)如果有运动检测模块,先调整运动阈值,正确区分当前场景中的"前景"和“背景”,这样后续的去噪模块才能对运动和静止区域进行更加精准针对性的去噪。通常静止区域用3d降噪,运动区域用2d降噪。----------需要注意降噪强度和拖尾的平衡关系。

(4)调试噪声和清晰度,可以先合理bypass 相关模块,根据仿真的结果,观察不同模块的影响强度。比如bypass清晰度模块,发现图像边缘和细节变柔和。但bypss DMS中和清晰度相关的模块,发现很多细节不可见。----------描述的有点乱,大家意会一下。则当清晰度不足时,可以相应增加DMS中的清晰度模块,可能是Sharpen、detail、EE。比如下图是MTK 平台的 HF STR。

在raw 域提升清晰度的毛病是,后续YUV域有些难去掉的低频噪声。

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

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

相关文章

RabbitMQ插件详解:rabbitmq_web_stomp【RabbitMQ 六】

欢迎来到我的博客,代码的世界里,每一行都是一个故事 《RabbitMQ Web STOMP:打破界限的消息传递之舞》 前言STOMP协议简介STOMP(Simple Text Oriented Messaging Protocol)协议简介STOMP与WebSocket的关系 WebSocket和R…

C++模板进阶

文章目录 前言反向迭代器反向迭代器和正向迭代器的区别stl反向迭代器源码反向迭代器模拟实现测试 模板进阶非类型模板参数Array 模板的特化模板的分离编译 前言 模板进阶也没有到一些特别的东西,就是讲比较偏的一些特性。 在这里我们先来讲一下反向迭代器。 反向迭…

java.net.SocketException: Connection reset

背景 在我用socket进行TCP通信的时候,当我关闭client端时在服务端出现了Connection reset的异常。 一、问题 下面是异常信息: Exception in thread "Thread-12" java.lang.RuntimeException: java.net.SocketException: Connection reseta…

解决下载huggingface模型权重无法下载的问题

文章目录 方法一(推荐)方法二方法三依然存在的问题 由于某些原因,huggingface的访问速度奇慢无比,对于一些模型(比如大语言模型LLM)的权重文件动辄几十上百G,如果用默认下载方式,很可能中断,这里推荐几种方式。 方法一…

ShopsN commentUpload 文件上传漏洞复现

0x01 产品简介 ShopsN 是一款符合企业级商用标准全功能的真正允许免费商业用途的开源网店全网系统。 0x02 漏洞概述 ShopsN commentUpload 接口处存在任意文件上传漏洞,攻击者可以利用文件上传漏洞执行恶意代码、写入后门、读取敏感文件,从而可能导致服务器受到攻击并被控…

cat EOF快速创建一个文件,并写入内容

在linux系统中,如果你有这个需求 vi一个文件 /etc/docker/daemon.json 在这个文件中写入内容 { "registry-mirrors": ["https://iw3lcsa3.mirror.aliyuncs.com","http://10.1.8.151:8082"],"insecure-registries":[&quo…

SaaS 电商设计 (五) 私有化部署-实现 binlog 中间件适配

一、 背景 具体的中间件私有化背景在上文 SaaS 电商设计 (二) 私有化部署-缓存中间件适配 已有做相关介绍.这里具体讨论的场景是通过解析mysql binlog 来实现mysql到其他数据源的同步.具体比如:在电商的解决方案业务流中经常有 ES 的使用场景,用以解决一些复杂的查询和搜索商品…

STM32 寄存器配置笔记——I2C 读写AT24C02 EEPROM

一、简介 本文主要介绍STM32F10xx系列如何使用软件模拟I2C总线读写AT24C02的EEPROM数据。 二、概述 I2C协议是一种用于同步、半双工、串行总线(由单片机时钟线、单数据交换器数据线组成)上的协议。规定了总线空闲状态、起始条件、停止条件、数据有效性、字节格式、响应确认信号…

MES系统物料计划协同:全面解析与应用

一、MES系统物料计划协同概述 MES系统物料计划协同是指通过MES系统对物料计划进行统一管理和协调,确保生产计划的顺利进行。通过将物料需求、采购、库存、生产和配送等环节进行有效集成,实现供应链的优化。这种协同方式有助于提高供应链的透明度和协同性…

焊盘:十字连接VS全覆盖 铺铜

在铺铜规则中,焊盘连接方式有两种: 十字连接 优点:较好焊接:因铺铜面积减少,温度下降速度降低,较好焊接,不易虚焊。 缺点:载流能力较弱:铺铜面积↓ → 载流能力↓全连接…

Leetcode—118.杨辉三角【简单】

2023每日刷题&#xff08;六十&#xff09; Leetcode—118.杨辉三角 实现代码 class Solution { public:vector<vector<int>> generate(int numRows) {vector<vector<int>> ans(numRows);for(int i 0; i < numRows; i) {ans[i].resize(i 1);ans…

算法训练营Day14

#Java #二叉树层次遍历 #反转二叉树 开源学习资料 二叉树的层次遍历&#xff1a;力扣题目链接 二叉树的层次遍历很好理解&#xff1a; 就是从根结点一层一层地往下遍历&#xff08;同一层&#xff0c;从左到右&#xff09;&#xff1a; 迭代的方式很好理解&#xff1a;就是…

用实例域代替序数

在Java中&#xff0c;枚举类型的ordinal()方法返回枚举常量的序数&#xff08;即其在枚举声明中的位置&#xff09;。在某些情况下&#xff0c;使用实例域&#xff08;instance field&#xff09;代替序数可能更加安全和易读。以下是一个示例&#xff0c;演示如何使用实例域代替…

mysql CREATE DATABASE

DROP DATABASE IF EXISTS zengwenfeng;CREATE DATABASE zengwenfeng DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;USE zengwenfeng; 脚本天天少这些&#xff0c;天天找这段&#xff01;

computed 和 watch 的奇妙世界:让数据驱动你的 Vue 应用(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

TestSSLServer4.exe工具使用方法简单介绍(查SSL的加密版本SSL3或是TLS1.2)

一、工具使用方法介绍 工具使用方法参照&#xff1a;http://www.bolet.org/TestSSLServer/ 全篇英文看不懂&#xff0c;翻译了下&#xff0c;能用到的简单介绍如下&#xff1a; 将下载的TestSSLServer4.exe工具放到桌面上&#xff0c;CMD命令行进入到桌面目录&#xff0c;执…

从 0 开始创建 SpringBoot 项目

从 0 开始创建 SpringBoot 项目 从 0 开始创建 SpringBoot 项目环境准备创建项目项目目录结构及说明编写代码参考 从 0 开始创建 SpringBoot 项目 环境准备 操作系统&#xff1a;Windows 10IDE&#xff1a;IntelliJ IDEA 2023.3.1Java 版本&#xff1a;jdk1.8 工具网盘链接&…

俄罗斯军方计划用 Astra Linux 取代 Windows!

网络安全正在改变全球化的面貌&#xff0c;各国政府为了防范外国的间谍和破坏活动&#xff0c;正积极发展自己的技术。在这一趋势下&#xff0c;俄罗斯军方已经开始用 Linux 发行版 Astra Linux 替换 Windows 系统。 如何提高Linux系统安全性&#xff1f;提升Linux安全的关键策…

垃圾收集器及内存分配

目录 垃圾收集器种类 HotSpot虚拟机所包含的收集器 垃圾收集器部分源码 垃圾收集器后台日志参数说明与配对关系 1、串行垃圾收集器 串行垃圾收集器运行示意图 1&#xff09;、编写测试代码 2&#xff09;、设置垃圾回收为串行收集器 3&#xff09;、启动程序&#xff…

Flink 数据集类型

现实世界中&#xff0c;所有的数据都是以流式的形态产生的&#xff0c;不管是哪里产生的数据&#xff0c;在产生的过程中都是一条条地生成&#xff0c;最后经过了存储和转换处理&#xff0c;形成了各种类型的数据集。如下图所示&#xff0c;根据现实的数据产生方式和数据产生是…