ISP各模块功能介绍

--------声明,本文为转载整理-------

ISP各个模块功能介绍:

各模块前后效果对比:

黑电平补偿(BLC)

在理想情况下,没有光照射的像素点其响应值应为0。但是,由于杂质、受热等其它原因的影响,传感器存在着暗电流,使得没有光照射到的像素点也会产生响应。

72c30193305e0ce3e9f32ebe7dc3ffe1.png
▲ 黑电平补偿前效果图

5da7692234fa48edf99cdfd82f6e7a5f.png
▲ 黑电平补偿后效果图

a.暗电流

物理器件不可能是理想的, 由于杂质、 受热等其他原因的影响, 即使没有光照射到象素,
象素单元也会产生电荷, 这些电荷产生了暗电流。 而且, 暗电流与光照产生的电荷很难进行区分。

b.Black Level

Black Level 是用来定义图像数据为 0 时对应的信号电平。由于暗电流的影响, 传感器出来的实际原始数据并不是我们需要的黑平衡( 数据不为0) 。 所以,为减少暗电流对图像信号的影响,可以采用的有效的方法是从已获得的图像信号中减去参考暗电流信号。一般情况下, 在传感器中, 实际像素要比有效像素多, 如下图所示, 像素区头几行作为不感光区( 实际上, 这部分区域也做了 RGB 的 color filter) , 用于自动黑电平校正, 其平均值作为校正值, 然后在下面区域的像素都减去此矫正值, 那么就可以将黑电平矫正过来了。

镜头校正(LSC)

由于镜头本身的物理性质,传感器捕获的图像会表现出中心亮度高、边缘亮度低的特点。为了输出一个亮度均匀的图像,需要对图像进行镜头阴影(Lens Shading)校正。

校正的方法是根据一定的算法计算每个像素对应的亮度校正值,从而补偿周边衰减的亮度。通常,镜头校正方法有二次项校正、四次项校正等。

8284563f0eb141fd15ae0301c80bf3de.png
▲ 镜头校正前效果图
96590291df4fe08ec804b70de80525f6.png
▲ 镜头校正后效果图

坏点校正(BPC)

由于传感器可能存在部分缺陷像素,导致一些像素点输出信号不正常,出现白点或黑点,也就是坏点。同时,随着传感器老化,也可能会出现更多的坏点。因此,需要对坏点进行修复。

所谓坏点,是指像素阵列中与周围像素点的变化表现出明显不同的像素,因为图像传感器是成千上万的元件工作在一起,因此出现坏点的概率很大。一般来讲,坏点分为三类:第一类是死点,即一直表现为最暗值的点;第二类是亮点,即一直表现为最亮值的点:第三类是漂移点,就是变化规律与周围像素明显不同的像素点。由于图像传感器中CFA的应用,每个像素只能得到一种颜色信息,缺失的两种颜色信息需要从周围像素中得到。如果图像中存在坏点的话,那么坏点会随着颜色插补的过程往外扩散,直到影响整幅图像。因此必须在颜色插补之前进行坏点的消除。


(1)坏点:坏点为全黑环境下输出图像中的白点, 高亮环境下输出图像中的黑点。
(2)坏点修复方法:一般情况下, RGB 信号应与景物亮度呈线性响应关系, 但由于 Senor 部分 pixel 不良导致输出的信号不正常, 出现白点或黑点。坏点修复方法通常有两种:一种是自动检测坏点并自动修复, 另一种是建立坏点像素链表进行固定位置的坏像素点修复, 这种方式是 OTP 的方式。

0f5b64c0bbf5db93d2e89978416d9de6.png
▲ 坏点校正前效果图
c0cbd849de29423fcea78f336e57150e.png
▲ 坏点校正后效果图

去马赛克(Demosaic

因为传感器只能感知光的强度,而不能直接感知光谱信息。因此,需要在传感器前加上滤光板来选取波段。但是,如果每个像素点都同时感知RGB三个分量,则需要三块滤光板,这样不仅成本高,而且难度大。因此,通常采用Bayer型的色彩滤波阵列(Color Filter Arrays,CFA)来获取场景的光谱信息。

e2369f60a375a1cbbd16732a9859e09b.png
Bayer型CFA
83b26b40f3d4986f191b898f6e8ed9bb.png
传感器感光示意图

从上面的示意图可见,每个像素只能探测一个通道的光信息,所以理想的Bayer图是一个较为昏暗的马赛克图。然而,为了获得彩色图像,需要计算出每个像素缺失的其它两个通道的响应值,即进行颜色插值处理。通常,经典处理方法包括最近邻域法、Bilinear插值、Cubic插值等。

 去噪声(Denoise

使用 cmos sensor获取图像,光照程度和传感器问题是生成图像中产生大量噪声的主要因素。同时, 当信号经过ADC 时, 又会引入其他一些噪声。 这些噪声会使图像整体变得模糊,而且丢失很多细节, 所以需要对图像进行去噪处理,空间去噪传统的方法有均值滤波、 高斯滤波等。但是, 一般的高斯滤波在进行采样时主要考虑了像素间的空间距离关系, 并没有考虑像素值之间的相似程度, 因此这样得到的模糊结果通常是整张图片一团模糊。 所以, 一般采用非线性去噪算法, 例如双边滤波器, 在采样时不仅考虑像素在空间距离上的关系, 同时加入了像素间的相似程度考虑, 因而可以保持原始图像的大体分块, 进而保持边缘。

不同ISP的去噪模块可能会在不同的环节进行,但去噪原理没有本质不同。

af9d6dc41558528fa966f201f3056038.png
▲ 去噪前效果图
cfe97383cb0a24d320f6e69012426fef.png
▲ 去噪后效果图

自动白平衡(AWB)

白平衡就是针对不同色温条件下,通过调整摄像机内部的色彩电路使拍摄出来的影像抵消偏色,更接近人眼的视觉习惯。白平衡可以简单地理解为在任意色温条件下,摄像机镜头所拍摄的标准白色经过电路的调整,使之成像后仍然为白色。这是一种经常出现的情况,但不是全部,白平衡其实是通过摄像机内部的电路调整(改变蓝、绿、红三个CCD电平的平衡关系)使反射到镜头里的光线都呈现为消色。如果以偏红的色光来调整白平衡,那么该色光的影像就为消色,而其他色彩的景物就会偏蓝(补色关系)。白平衡是一个很抽象的概念,最通俗的理解就是让白色所成的像依然为白色,如果白是白,那其他景物的影像就会接近人眼的色彩视觉习惯。调整白平衡的过程叫做白平衡调整,白平衡调整在前期设备上一般有三种方式:预置白平衡、手动白平衡调整和自动跟踪白平衡调整。通常按照白平衡调整的程序,推动白平衡的调整开关,白平衡调整电路开始工作,自动完成调校工作,并记录调校结果。如果掌握了白平衡的工作原理,那么使用起来会更加有的放矢,得心应手。


备注:消色就是指黑白灰三种颜色。黑白灰的物体对光源的光谱成分不是有选择地吸收和反射而是等量吸收和等量反射各种光谱成分。这时物体看上去没有了色彩。对各种光谱成分全部吸收的表面,看上去是黑色,等量吸收一部分等量反射一部分的表面是灰色,反射绝大部分而吸收极小部分是白色。消色和任何色彩搭配在一起,都显得和谐协调。

白平衡原理:摄像机内部有三个CCD电子耦合元件,他们分别感受蓝色、绿色、红色的光线,在预置情况下这三个感光电路电子放大比例是相同的,为1:1:1的关系,白平衡的调整就是根据被调校的景物改变了这种比例关系。比如被调校景物的蓝、绿、红色光的比例关系是2:1:1(蓝光比例多,色温偏高),那么白平衡调整后的比例关系为1:2:2,调整后的电路放大比例中明显蓝的比例减少,增加了绿和红的比例,这样被调校景物通过白平衡调整电路到所拍摄的影像,蓝、绿、红的比例才会相同。也就是说如果被调校的白色偏一点蓝,那么白平衡调整就改变正常的比例关系减弱蓝电路的放大,同时增加绿和红的比例,使所成影像依然为白色。 自动白平衡,是依赖数码相机里的测色温系统,测出红光和蓝光的相对比例。再依据次数据调整曝光,产生红、绿、蓝电信号的增益。自动白平衡最大的优势是;简单、快洁。但有时按它的调整拍摄离准确的色彩还原还相距甚远。有时它还会帮倒忙。

4de30134c487f946e1843240dfa18c0d.png
▲ 白平衡处理前效果图

22775708aec4e9586c27b4522a6e0afd.png
▲ 白平衡处理后效果图

颜色校正(Color Correction

在校正完白平衡后,需要进行彩色的校正。因为人眼对可见光的频谱响应度和半导体传感器频谱响应度之间存在差别,故而得到的颜色RGB值会存在偏差,因此,必须对颜色进行校正。通常,可用一个3x3的颜色变化矩阵来进行颜色校正。

伽马校正(Gamma Correction)

人眼与相机的感光特性不同。为了让图像与人眼感知的色貌相符合,需要将相机采集的图像进行伽马校正;这里不多做介绍。

ddfc552460fbf47594bc369236b7097c.png
▲ 人眼与相机的感光特性

图像压缩

最后,为了减小图像占用的存储空间,通常会将图像数据进行压缩,丢弃那些肉眼无法识别的信息,再用一些编码技术来提高信息利用率。其中,最常用的编码格式当然就是JPG 格式了。

关于转换:

关于raw(bayer)数据转换rgb数据

RGB图, 即为三色图, 一个像素点就由RGB三种颜色构成的混合色, 而bayer图一个像素就只有一个颜色, 或R或G或B. 因为bayer一个像素点只有一种颜色, 需要借助这个像素点周围的颜色对它进行插值(填充)另外的两种颜色, 它本身的颜色就不用插了接下来介绍一下Bayer 。

图像在将实际的景物转换为图像数据时, 通常是将传感器分别接收红、 绿、 蓝三个分量的信息, 然后将红、 绿、 蓝三个分量的信息合成彩色图像。 该方案需要三块滤镜, 这样价格昂贵,且不好制造, 因为三块滤镜都必须保证每一个像素点都对齐。

通过在黑白 cmos 图像传感器的基础上, 增加彩色滤波结构和彩色信息处理模块就可以获得图像的彩色信息, 再对该彩色信息进行处理, 就可以获得色彩逼真的彩色图像。通常把彩色图像传感器表面覆盖的滤波称为彩色滤波阵列( Color Filter Arrays, CFA) 。

目前最常用的滤镜阵列是棋盘格式的, 已经有很多种类的, 其中绝大多数的摄像产品采用的是原色贝尔模板彩色滤波阵列( Bayer Pattern CFA) , 如图 2 所示, R、 G、 B 分别表示透红色、 透绿色和透蓝色的滤镜阵列单元, 图 3 比较形象地展示了此过程。由于人的视觉对绿色最为敏感, 所以在 Bayer CFA 中 G 分量是 R 和 B 的二倍, 在每个像素点上只能获取一种色彩分量的信息,然后根据该色彩分量的信息通过插值算法得到全色彩图像。

关于色彩空间转换

在传输和存储上可以节省带宽和存储空间,例如一个RGB图像可以在捕捉之后转换为YCbCr格式用来减少存储和传输负担。在显示图象之前,再转回为RGB;在不同场合上可以根据需要做出转换,适应各种图像格式的需要,例如在做图像处理时算法可能需要YUV格式图像,而图像在屏幕显示需要RGB格式图像,有了色彩空间转换,就可以用一种格式的图像满足不同的图像格式要求。YUV 是一种基本色彩空间, 人眼对亮度改变的敏感性远比对色彩变化大很多, 因此, 对于人眼而言, 亮度分量Y 要比色度分量U、V 重要得多。 所以, 可以适当地抛弃部分U、V分量, 达到压缩数据的目的。

其他:

关于色温

所谓色温,简而言之,就是定量地以开尔文温度(K)来表示色彩。英国著名物理学家开尔文认为,假定某一黑体物质,能够将落在其上的所有热量吸收,而没有损失,同时又能够将热量生成的能量全部以“光”的形式释放出来的话,它便会因受到热力的高低而变成不同的颜色。例如,当黑体受到的热力相当于500—550℃时,就会变成暗红色,达到1050-1150℃时,就变成黄色,温度继续升高会呈现蓝色。光源的颜色成分与该黑体所受的热力温度是相对应的,任何光线的色温是相当于上述黑体散发出同样颜色时所受到的“温度”,这个温度就用来表示某种色光的特性以区别其它,这就是色温。打铁过程中,黑色的铁在炉温中逐渐变成红色,这便是黑体理论的最好例子。色温现象在日常生活中非常普遍,相信人们对它并不陌生。钨丝灯所发出的光由于色温较低表现为黄色调,不同的路灯也会发出不同颜色的光,天然气的火焰是蓝色的,原因是色温较高。正午阳光直射下的色温约为5600 K,阴天更接近室内色温3200K。日出或日落时的色温约为2000K,烛光的色温约1000K。

关于色温的规律

色温越高,光色越偏蓝;色温越低则偏红。某一种色光比其它色光的色温高时,说明该色光比其它色光偏蓝,反之则偏红;同样,当一种色光比其它色光偏蓝时说明该色光的色温偏高,反之偏低。由于人眼具有独特的适应性,使我们有的时候不能发现色温的变化。比如在钨丝灯下呆久了,并不会觉得钨丝灯下的白纸偏红,如果突然把日光灯改为钨丝灯照明,就会觉查到白纸的颜色偏红了,但这种感觉也只能够持续一会儿。摄像机的CCD并不能像人眼那样具有适应性,所以如果摄像机的色彩调整同景物照明的色温不一致就会发生偏色。白平衡就是为了避免偏色的出现。从而引出白平衡概念。

总结:

本文介绍了相机在使用传感器记录拍摄景物的光学信号后进行的常见功能处理。可见,整个ISP处理流程非常复杂。在我们点击拍照按钮时,手机中的ISP芯片实际正在飞速地运转。也正是得益于这项成熟的技术,我们可以在瞬间记录下美好生活。

除了以上提到的,ISP中还有许多其它模块,如HDR、自动曝光控制 (AEC)、锐化等,这些模块都对最终成像结果产生了重要的影响。

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

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

相关文章

前缀和练习

【模版】前缀和 【模板】前缀和_牛客题霸_牛客网 思路 要想快速找出某一连续区间的和&#xff0c;我们就要使用前缀和算法。 其实本质是再创建一个dp数组&#xff0c;每进一次循环加上原数组的值&#xff08;dp代表arr的前n项和&#xff09;&#xff1a; vector<int>…

3. 【Vue实战--孢子记账--Web 版开发】--登录大模块

从这篇文章开始我们就进入到了孢子记账的前端开发&#xff0c;在本专栏中我默认大家的电脑上都已经配置好了开发环境。下面我们一起开始编写孢子记账的Web版吧。 一、功能 登录大模块功能包括注册、登录和找回密码功能&#xff0c;在本篇文章中我只会展示注册界面的实现&…

【2024年华为OD机试】 (A卷,100分)- 端口合并(Java JS PythonC/C++)

一、问题描述 题目描述 有 M 个端口组 (1 < M < 10)&#xff0c; 每个端口组是长度为 N 的整数数组 (1 < N < 100)&#xff0c; 如果端口组间存在 2 个及以上不同端口相同&#xff0c;则认为这 2 个端口组互相关联&#xff0c;可以合并。 输入描述 第一行输入端…

73.矩阵置零 python

矩阵置零 题目题目描述示例 1&#xff1a;示例 2&#xff1a;提示&#xff1a; 题解思路分析Python 实现代码代码解释提交结果 题目 题目描述 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例…

基于华为ENSP的OSPF状态机、工作过程、配置保姆级别详解(2)

本篇技术博文摘要 &#x1f31f; 基于华为enspOSPF状态机、OSPF工作过程、.OSPF基本配置等保姆级别具体详解步骤&#xff1b;精典图示举例说明、注意点及常见报错问题所对应的解决方法 引言 &#x1f4d8; 在这个快速发展的技术时代&#xff0c;与时俱进是每个IT人的必修课。我…

SOLID原则学习,接口隔离原则

文章目录 1. 定义2. 为什么要遵循接口隔离原则&#xff1f;3. 违反接口隔离原则的例子4. 遵循接口隔离原则的改进5. 总结 1. 定义 接口隔离原则&#xff08;Interface Segregation Principle, ISP&#xff09; 接口隔离原则是面向对象设计中的五大原则&#xff08;SOLID&#…

Jenkins-持续集成、交付、构建、部署、测试

Jenkins-持续集成、交付、构建、部署、测试 一: Jenkins 介绍1> Jenkins 概念2> Jenkins 目的3> Jenkins 特性4> Jenkins 作用 二&#xff1a;Jenkins 版本三&#xff1a;DevOps流程简述1> 持续集成&#xff08;Continuous Integration&#xff0c;CI&#xff0…

从0到机器视觉工程师(六):配置OpenCV和Qt环境

CMake配置OpenCV CMakeLists.txt文件的编写 cmake_minimum_required(VERSION 3.20) project(test_opencv LANGUAGES CXX) #寻找Opencv库 FIND_PACKAGE(OpenCV REQUIRED) include_directories(test_opencv ${OpenCV_INCLUDE_DIRS}) add_executable(test_opencv main.cpp) TARGE…

CDA数据分析师一级经典错题知识点总结(3)

1、SEMMA 的基本思想是从样本数据开始&#xff0c;通过统计分析与可视化技术&#xff0c;发现并转换最有价值的预测变量&#xff0c;根据变量进行构建模型&#xff0c;并检验模型的可用性和准确性。【强调探索性】 2、CRISP-DM模型Cross Industry Standard Process of Data Mi…

【Uniapp-Vue3】v-for列表渲染的用法

如果我们想要重复渲染多个元素&#xff0c;就可以使用v-for进行渲染。 比如我们想要将元素渲染5次&#xff1a; 如果我们想要知道当前元素是渲染的第几个&#xff0c;可以在v-for的时候添加参数index&#xff0c;并在差值表达式中填入index&#xff1a; 则index会以0开始进行渲…

《新闻大厦抢先版》V0.18.105+Dlcs官方学习版

《新闻大厦抢先版》官方版https://pan.xunlei.com/s/VODaeUn3v-ZWVvvmUMfo5AqWA1?pwdnhpz# 建造并不断优化新闻大楼&#xff0c;保障员工权益并及时赶上周日的印刷交期&#xff01; 招募并管理不同职业以登上成功的阶梯&#xff1a;记者、摄像师、勤杂工&#xff0c;除此以外…

解锁3D模型转换:STL转OBJ全攻略

一、3D模型转换的基石&#xff1a;STL与OBJ格式概览 在3D模型的世界里&#xff0c;STL和OBJ格式犹如两大基石&#xff0c;支撑着模型创建、编辑、转换与应用的方方面面。了解它们的特性&#xff0c;是深入探究3D模型转换的关键第一步。 1.1 STL格式深度剖析 STL 全称为Stereo…

RK3568 Android 13 内置搜狗输入法小计

问&#xff1a;为什么写&#xff1f; 答&#xff1a;网上搜出来的都试过了&#xff0c;不行&#xff01;下面直接上代码和注意事项&#xff01; 首先到这个目录&#xff08;/RK3568/Rockchip_Android13_SDK_Release/device/rockchip/rk356x/tl3568_evm/preinstall&#xff09…

windows10下安装Microsoft SQL Server 2016

一、下载安装包 网站&#xff1a;MSDN, 我告诉你 - 做一个安静的工具站 选择需要的版本&#xff0c;点击详细信息&#xff0c;复制ed2k链接&#xff0c;打开eMule或迅雷&#xff0c;新建下载&#xff0c;粘贴链接&#xff0c;开始下载。 下载好的文件是一个.iso镜像文件。 二、…

探索图像编辑的无限可能——Adobe Photoshop全解析

文章目录 前言一、PS的历史二、PS的应用场景三、PS的功能及工具用法四、图层的概念五、调整与滤镜六、创建蒙版七、绘制形状与路径八、实战练习结语 前言 在当今数字化的世界里&#xff0c;视觉内容无处不在&#xff0c;而创建和编辑这些内容的能力已经成为许多行业的核心技能…

IDEA Maven构建时报错:无效的目标发行版17

报错分析 报错原因&#xff1a;Maven 构建时&#xff0c;Java 版本配置不匹配 我安装的JDK版本是1.8&#xff0c;但由于种种原因&#xff0c;Maven构建时指定了 Java 17 作为目标发行版&#xff0c;从而导致错误 解决方案 首先&#xff0c;java -version&#xff0c;查看环…

西电-神经网络基础与应用-复习笔记

此为24年秋研究生课程复习笔记 导论 神经网络的研究方法分为 连接主义&#xff0c;生理学派&#xff0c;模拟神经计算。高度的并行、分布性&#xff0c;很强的鲁棒和容错性。便于实现人脑的感知功能(音频图像的识别和处理)。符号主义&#xff0c;心理学派&#xff0c;基于符号…

Gitlab-Runner配置

原理 Gitlab-Runner是一个非常强大的CI/CD工具。它可以帮助我们自动化执行各种任务&#xff0c;如构建、测试和部署等。Gitlab-Runner和Gitlab通过API通信&#xff0c;接收作业并提交到执行队列&#xff0c;Gitlab-Runner从队列中获取作业&#xff0c;并允许在不同环境下进行作…

LLM 智能视频字幕助手,支持生成、断句、优化、翻译、视频合成全流程

卡卡字幕助手&#xff08;VideoCaptioner&#xff09;是一款功能强大的视频字幕配制软件。操作简单且无需高配置&#xff0c;利用大语言模型进行字幕智能断句、校正、优化、翻译&#xff0c;一键为视频配上效果惊艳的字幕。 &#x1f3af; 可使用强大的语音识别引擎&#xff0c…

GitLab本地服务器配置ssh和克隆项目

1. 本地安装好git git链接&#xff1a;https://git-scm.com/downloads/win 无脑点击下一步安装即可,打开Git Bash命令终端如下&#xff1a; 2. 配置本地用户名和邮箱 git config --global user.name "你的名字" git config --global user.email "你的邮箱&quo…