ISP有感自发
一、黑电平
由于传感器,即便在无光的情况下,依然会产生微小的暗电流,这些暗电流可能是噪点会影响后期的调试。因此,我们便将这些电流处理为0,成为纯黑的颜色。可以在源头消除这些误差。
如何矫正黑电平:
在其中有个ob区域(Optical Black Region),这个区域是不感光的,但是也会接收到黑电平。因此,可以把有效区域的值减去ob区的值,这样就可以得到矫正后的值。
-
获取OB区数据:从传感器读取遮蔽区域的像素值(如每行的前若干列)。
-
计算基准值:取OB区所有像素的均值或中位数(避免异常值干扰)。
-
矫正图像数据:
矫正后像素=原始像素−OB区基准值矫正后像素=原始像素−OB区基准值 -
限幅处理:确保结果不小于0(避免负值)。
二、ISP的调试思路
1、明确ISP的调试顺序。
因为靠前的会影响到靠后顺序的模块。不同平台会不同,一定要问清楚对应的厂商。
如上是一个比较简单的 ISP pipeline,各家平台会有些差异,但其实大概的流程原理都是差不多的,可能会多些小的功能模块,及做一些数据转换处理,比如raw域去噪前,因为raw数据比较暗,可能会加一条曲线把暗部调亮一点,有助于去噪的处理。
简单过一下如上的流程图,可以分为3个模块来看,sensor 出来的是 bayer 格式的raw 数据,中间经过黑电平矫正(blc),去除暗电流、镜头阴影矫正(lsc),去掉边缘暗角及color shading、接着经过坏点矫正(dpc),去除sensor中的动静态坏点。
再经过 Demosaic 处理后,输出RGB格式的数据,接着会经过时/空域的去噪处理、白平衡(awb)、颜色矩阵矫正(ccm)、gamma的处理,后面会转换成YUV格式的数据输出,再经过自动曝光(ae)、降彩噪(CNR)、锐化等的处理,最后经过编码输出显示出来。
2、特征标定
特征标定是ISP调试的第一步,目的是通过实验室环境下的标准化测试,提取传感器模组的物理特性,并生成一组静态参数。
-
BLC(Black Level Correction,黑电平校正):消除传感器暗电流引起的基线噪声。
-
LSC(Lens Shading Correction,镜头阴影校正):补偿镜头边缘亮度衰减和颜色不均匀性。
-
Noise Profile(噪声特性分析):量化传感器在不同光照条件下的噪声分布,为降噪算法提供依据。
-
Gamma(伽马校正):调整图像对比度,使输出符合人眼感知特性。
-
AWB(Auto White Balance,自动白平衡):校正色温,确保白色物体在不同光照下呈现中性色。
-
CCM(Color Correction Matrix,颜色校正矩阵):补偿传感器颜色滤波阵列(CFA)的色偏。
-
CAC(Chromatic Aberration Correction,色差校正):修正镜头色散导致的颜色边缘偏移。
这些参数本质上是传感器模组的 "物理指纹",反映了其硬件特性(如感光能力、噪声特性、镜头缺陷等)。标定得到的参数是 静态的,即在特定实验室环境下(固定光照、色温、标定板等)生成的参数,理论上 不随场景变化。它们是后续在线调试的基准。如果不矫正好,会影响后续的模块。在标定完成后,ISP会进入 在线调试(Tuning) 阶段,即根据实际场景动态调整参数(如动态降噪强度、局部对比度增强等)。但这一阶段需要 基于准确的标定参数。
3、不同功能模块调试
亮度/对比度相关的模块,如 gamma、ltm、gtm、aeb、色彩相关模块,如 ccm、awb、gamma、blcc、清晰度相关模块,如 ae、lsc、2d/3d nr、demosaic、dpc
4、在线调试
①在线调试的第一步是AE。
因为很多模块都是基于曝光的,AE里面会涉及gain值和噪点,如果AE不确定,其他模块的噪点也不确定,调试也是没有意义的。
②降噪和清晰度调试。
接着可以是降噪和清晰度模块的调试,降噪过大肯定是会对清晰度有损失,调试时是需要平衡的, 还有调试时要注意是raw域还是yuv域的处理(如果是raw域锐化或去噪过大,可能就会放大噪声或者损失清晰度,你后续yuv域的去噪或锐化就做不出来了),另外清晰度不够时,要思考是否是 demosaic 模块细节没做出来,或者raw域去噪太强,导致细节损失了,而不是一味的去调整锐化强度。解释如下:
在低光场景(ISO 3200),需 适度放松降噪强度 以保留暗部细节,同时 降低锐化强度 避免放大噪声;而在明亮场景(ISO 100),可 增强降噪和锐化 以提升清晰度。
③ RAW域与YUV域处理的差异
RAW域处理
-
输入数据:传感器输出的原始RAW数据(Bayer格式,未插值)。
-
关键操作:
-
降噪:优先在RAW域进行 基础降噪(如时域降噪、空域滤波),因为此时噪声尚未被后续处理(如Demosaic)放大。
-
锐化:RAW域锐化需谨慎,避免在插值前破坏Bayer模式的结构(可能引入伪色或混叠噪声)。
-
风险:
-
RAW域降噪过强:会抹除高频细节(如纹理、边缘),导致后续Demosaic无法恢复。
-
RAW域锐化过度:可能放大噪声或产生伪色,后续YUV域处理难以修正。
YUV域处理
-
输入数据:经过Demosaic、色彩校正、Gamma后的YUV格式数据(亮度Y + 色度UV分离)。
-
关键操作:
-
降噪:针对YUV分量的特性进行 精细化降噪(如亮度通道降噪、色度通道降噪分离)。
-
锐化:在Y通道(亮度)进行边缘增强,或在UV通道抑制色噪。
-
-
RAW域:侧重 基础降噪(抑制固定模式噪声、时域噪声),避免过度处理。
-
YUV域:侧重 精细化降噪(如色度降噪、亮度通道自适应滤波)和 可控锐化。
④色彩模块
色彩相关的模块可以单独去调影响不大,但ccm调整的过饱和时,会出现色噪。一般整体的偏色都是白平衡偏了,图像中某个颜色不对可以调整ccm,一般情况下不建议手动去调整ccm,因为这肯定是会影响到其他颜色的。另外gamma的调整会对颜色有影响(具体为啥会有影响,我后续文章会在具体总结)。
相关文章:

ISP有感自发
一、黑电平 由于传感器,即便在无光的情况下,依然会产生微小的暗电流,这些暗电流可能是噪点会影响后期的调试。因此,我们便将这些电流处理为0,成为纯黑的颜色。可以在源头消除这些误差。 如何矫正黑电平: …...

web 自动化之 PO 设计模式详解
文章目录 一、什么是 POM二、如何基于 POM 进行自动化框架架构?1、base 层封装2、pageobjects 层封装3、TestCases 层封装 三、元素和方法分离&数据分离1、哪些部分可以进行分离2、示例代码 四、总结 一、什么是 POM POM page object model 页面对象模型 WEB 自…...

NVMe简介1
它分为两部分,这里是第一部分。 NVM Express(NVMe)是一种高性能、可扩展的接口协议,用于通过PCI express(PCIe)总线,实现主机软件与NVM设备之间的通信。目前,由于NVMe SSD相比于SATA…...

【python机器学习】Day 25 异常处理
知识点: 异常处理机制debug过程中的各类报错try-except机制try-except-else-finally机制 在即将进入深度学习专题学习前,我们最后差缺补漏,把一些常见且重要的知识点给他们补上,加深对代码和流程的理解。 借助ai写代码的时候&…...

数学建模初等模型应用
一、目的 掌握初等模型的建模方法,对简单的初等模型能借助Matlab工具软件进行辅助建模、求解和检验。 二、实验内容与设计思想(设计思路、主要代码分析) 1、预测鱼的质量 (1)设计思路:使用线性回归模型预测鱼的质量…...
占位符读取标准输入缓冲区规则
1、如果标准输入缓冲区中的前若干个字符都是空白字符,%s,%d,%f都能直接跳过并且从第一个非空白字符开始读取,但%c不能,而是直接读取。 2、%s遇到空白字符时停止,不会读取遇到的空白字符。 3、%d遇到非数字…...

【MCP教程系列】SpringBoot 搭建基于 Spring AI 的 SSE 模式 MCP 服务
原文地址:https://developer.aliyun.com/article/1662946 在当今快速发展的AI技术背景下,如何高效地集成模型能力成为开发者关注的重点。本文将手把手教你如何基于 Spring AI 搭建支持 SSE(Server-Sent Events)模式的 MCP 服务 相…...
【kafka】kafka概念,使用技巧go示例
1. Kafka基础概念 1.1 什么是Kafka? Kafka是一个分布式流处理平台,用于构建实时数据管道和流式应用。核心特点: 高吞吐量:每秒可处理百万级消息持久化存储:消息按Topic分区存储在磁盘分布式架构:支持水平…...

利用散点图探索宇航员特征与太空任务之间的关系
利用散点图探索宇航员特征与太空任务之间的关系 import matplotlib.pyplot as plt import numpy as np import pandas as pdfrom flexitext import flexitext from matplotlib.patches import FancyArrowPatchplt.rcParams.update({"font.family": "Corbel&quo…...
Ubuntu 命令行显示中文输出信息
Ctrl Alt T 打开终端命令行, 输入命令: sudo apt-get install language-pack-zh-hans安装中文语言支持包 sudo apt-get install language-pack-zh-hans-base配置环境变量 sudo vim /etc/profile进入文件后,按下 a 进入编辑模式,shift ↓ \downarr…...
Linux文件编程——read函数与lseek函数
一、read函数 在 Linux 文件编程中,read 函数是一个系统调用,用于从文件描述符(File Descriptor)指向的文件或设备中读取数据到缓冲区。它是 Unix/Linux 系统编程中实现底层 I/O 操作的核心函数之一。以下是 read 函数的详细使用…...
[思维模式-38]:看透事物的关系:什么是事物的关系?事物之间的关系的种类?什么是因果关系?如何通过数学的方式表达因果关系?
一、什么是事物的关系? 事物的关系是指不同事物之间存在的各种联系和相互作用,它反映了事物之间的相互依存、相互影响、相互制约等特性。以下从不同维度为你详细阐述: 1、关系的类型 因果关系 定义:一个事件(原因&a…...
【2025.5.12】视觉语言模型 (更好、更快、更强)
【2025.5.12】Vision Language Models (Better, Faster, Stronger): https://huggingface.co/blog/vlms-2025 【2024.4.11】Vision Language Models Explained【先了解视觉语言模型是什么】: https://huggingface.co/blog/vlms nanoVLM: https://github.…...
Spring的bean的生命周期?
Spring中bean的生命周期包括以下步骤: 通过BeanDefinition获取bean的定义信息。 调用构造函数实例化bean。 进行bean的依赖注入,例如通过setter方法或Autowired注解。 处理实现了Aware接口的bean。 执行BeanPostProcessor的前置处理器。 调用初始化…...

Qwen集成clickhouse实现RAG
一、RAG概要 RAG(Retrieval-Augmented Generation,检索增强生成) 是一种结合了信息检索技术与语言生成模型的人工智能技术。旨在通过检索相关文档来增强大模型的生成能力,从而提高预测的质量和准确性。RAG模型在生成文本或回答…...

Excel分组计算求和的两种实现方案
文章目录 背景样例数据方案一、函数求和实现步骤缺点 方案二、数据透视表实现步骤优点 背景 在Excel文档中,经常会进行数据的求和计算,可使用不同的方式实现,记录下来,方便备查。 样例数据 已有商品销量信息,包含销…...
深入理解卷积神经网络:从基础原理到实战应用
在人工智能领域,卷积神经网络(Convolutional Neural Network,简称 CNN)凭借其强大的图像识别、处理能力,成为深度学习中不可或缺的技术。无论是自动驾驶汽车识别道路标志,还是医学影像分析辅助疾病诊断&…...

LLM定制新路径:微调与上下文学习的博弈与融合
在当今人工智能的浪潮中,大型语言模型(LLMs)已成为推动行业进步的关键力量。无论是自然语言处理、文本生成还是多模态应用,LLMs都在展现着它们的强大能力。然而,当我们将这些强大的模型应用于特定的下游任务时…...
【江苏省】《信息技术应用创新软件适配改造成本评估规范》(DB32/T 4935-2024)-标准解读系列
在信息技术应用创新产业蓬勃发展的当下,软件适配改造成本评估成为项目实施的关键环节。《DB32/T 4935-2024 信息技术应用创新软件适配改造成本评估规范》应运而生,为成本评估提供了专业依据。同时,《省级政务信息化项目建设方案编制规范&…...
JDK 命令行工具大全与学习方法总结 —— 从帮助文档到高效实践
JDK 命令行工具大全与学习方法总结 —— 从帮助文档到高效实践 Java开发与运维过程中,JDK自带的命令行工具是定位问题、性能调优、编译调试的基石。本文全面梳理JDK常用命令工具、帮助文档的获取方式,并总结类似Linux命令行的学习方法,助你系…...

嵌入式中深入理解C语言中的指针:类型、区别及应用
在嵌入式开发中,C语言是一种基础且极为重要的编程语言,其中指针作为一个非常强大且灵活的工具,广泛应用于内存管理、动态数据结构的实现以及函数参数的传递等方面。然而,尽管指针的使用极为常见,很多开发者在掌握其基本使用后,往往对指针的深入理解还不够。本文将深入分析…...

香港维尔利健康科技集团成都区域运营中心投入使用,西南市场战略全面提速
近日,香港维尔利健康科技集团正式宣布,其位于四川成都的西南区域运营中心已全面建成并投入使用。该中心将集设备调配、技术支持、客户服务、运营管理及数字健康平台维护于一体,成为集团在中国内地智慧医疗战略版图中的关键枢纽,对…...

STM32CubeMX HAL库 串口的使用
1.配置 2.开启中断后,生成代码 3.串口的接收 1).开启空闲中断接收 __HAL_UART_ENABLE_IT(huart, UART_IT_IDLE); // 关键步骤:启用空闲中断 2). 启动接收 调用 HAL_UARTEx_ReceiveToIdle_IT 启动异步接收,可以使用…...
二手车估值接口介绍
二手车估值接口是基于大数据和机器学习技术开发的工具,旨在为二手车交易、金融评估等场景提供快速、精准的车辆价值评估服务。以下从核心功能、技术原理、接口特点及应用场景等方面进行综合介绍: 一、核心功能 多维度数据采集与分析 接口整合了车辆基础…...

flutter 视频通话flutter_webrtc
flutter 比较热门的库 flutter_webrtc | Flutter package agora_rtc_engine | Flutter package 我使用的是flutter_webrtc 下面是官方推荐的demo库 GitHub - flutter-webrtc/flutter-webrtc-demo: Demo for flutter-webrtc 其中 https://demo.cloudwebrtc.com:8086/ 已经停…...

Babylon.js学习之路《四、Babylon.js 中的相机(Camera)与视角控制》
文章目录 1. 引言:为什么相机是 3D 场景的“眼睛”?1.1 相机的核心作用1.2 常见相机类型概览 2. 相机基础参数解析2.1 通用属性2.2 相机坐标系 3. 详解常用相机类型3.1 自由相机(FreeCamera)3.2 弧形旋转相机(ArcRotat…...

【Redis实战篇】秒杀优化
1. 秒杀优化-异步秒杀思路 我们来回顾一下下单流程 当用户发起请求,此时会请求nginx,nginx会访问到tomcat,而tomcat中的程序,会进行串行操作,分成如下几个步骤 1、查询优惠卷 2、判断秒杀库存是否足够 3、查询订单…...
RHCE认证通过率
红帽RHCE考试总体通过率38%(2023年数据),细分数据显示自学者通过率18%,参加官方培训者47%,企业团体考生53%。通过率差异由备考资源和考试策略决定。 RHCE考试重点考Ansible自动化运维,需在3.5小时内完成12…...
外贸礼品禁忌
一、亚洲 1.印度 牛是神圣动物,别送牛皮制品。另外,左手不洁,送礼得用右手或双手。 2.日本 “梳” 和 “苦” 谐音,不送梳子。日本男性不咋佩戴首饰,除结婚戒指。礼物得装盒、纸包、绳饰,白色包装得有…...

Trae IDE:AI深度集成的智能开发环境
(以高效人机协作重塑编程体验) 概述 Trae IDE(发音 /treɪ/)是一款深度集成AI能力的现代化开发工具,结合传统IDE的完备功能与前沿AI技术,提供智能问答、代码自动补全、跨文件编程及AI Agent驱动的自动化开…...