相机图像信号处理流程(ISP)

混说Linux 2023-12-08 19:00

点击左上方蓝色“混说Linux”,选择“设为星标

第一时间看干货文章



 1

本文是图像信号处理流程的一个总体的介绍,以便更好理解一张照片究竟是如何诞生的,实际的技术要复杂很多。

 

1. 传感器捕获光信号

现在的相机多使用CMOS作为传感器,不同的相机有不同的画幅,如常见的APS-C画幅、全画幅等。总的来说画幅越大,即传感器尺寸越大,最终的成像质量会越好,因为可以捕捉到更多的光信号。

常见的彩色图像格式是RGB三通道的,但是最开始的光信号采集却不是每个像素都会采集RGB三个像素的信息,这样做会有成本以及空间的问题,而是收集三种不同光的Sensor成拜尔阵列分布,后续再通过插值等手段去恢复。
CFA的作用是过滤其他光线,使得我们需要的红、绿、蓝三种波段的光才能进入传感器。

但是不同的CFA(color filter array)过滤后,最终相机对于不同波段的光的敏感度曲线也是有差别的。

Sensor最终的值是光强和曝光时间的线性函数,结合前面的人眼的敏感曲线,这个阶段其实是对真实世界的光辐射的一个捕捉,并没有结合人眼特性去处理。

这个时候的图像也不是电子设备可以显示的常见色彩空间,需要后续进行转换,直接显示RAW-RGB会非常奇怪。

 

2. ISO和RAW格式图像处理流程

ISO
玩摄影的知道ISO代表感光度,值越高相机对光线敏感度越高,暗光下需要调高ISO,但是随之而来的是噪点会变明显。

但是其实相机捕捉到的实际光信号是不会因ISO变化而改变的,受限于光圈大小和Sensor曝光时间(快门时间),调整ISO本质上是调整传感器对得到的光信号的放大倍数,而在放大这个信号的同时,噪声也被放大了,就出现了前面提到的现象。
像素强度(Pixel "intensity")是个绝对值,主要取决于:
  • 增益(ISO)
  • 曝光时间(Exposure)
  • 将信号数字化的硬件设计


暗电流矫正(Black Level Correction)与光学暗区(Optical black

即使没有光照,电路中也会存在噪声电流等。所以传感器会有一块光学暗区(OB)去捕捉没有光线时候采集到的信号,然后再用实际捕捉到的信号减去OB的信号,以减少噪声。

缺陷像素遮盖(Defective pixel mask)


传感器的可能存在一些有缺陷的相机,一般由相机厂商完成,通过插值等方法去处理。

平场矫正(Flat-field correction)

由于镜头、传感器位置等原因,会导致传感器最终捕捉到的不同区域的光强并不平均(有点类似一些镜头拍出来会有暗角),需要人为对对应的区域做补偿或者抑制。

 

3. 去马赛克

即前面提到的,由于CMOS的RGB采集像素是分布不均匀的,需要通过插值去进行补偿,使得最终得到的每个Pixel都有RGB三个通道的值。
文章里提到了两个插值方法,即简单的平均插值,或根据与周围像素的相似度去分配权限求加权平均去插值。但是发展到今天实际上的技术应该要复杂很多,就不赘述了。

  • 平均插值:

  • 按相似度加权:
另外现在的很多传感器其实也不再采用拜尔阵列,而是有其他不同的排布方式。

 

4. 降噪(Noise reduction)

接下来会根据噪点的大小去采取不同程度的降噪处理,噪声越大采取的算法越激进,但是这个过程中其实会丢失很多信息与细节(例如手机由于传感器比较小,往往需要更激进的降噪算法)。

噪声主要来源:
  • 由于光子自身量子性质产生的噪声,这部分是与成像系统无关的,服从泊松分布;
  • 传感器和电路系统自身的噪声,如暗电流等,服从正态分布;

而增益g又进一步放大了这个噪声(即IOS),所以一般ISO越高需要采取更加激进的降噪算法。
文中提到了一个简单的降噪算法,现在采用的技术会更复杂,但是思路值得借鉴。
  • IOS越高,通过滤波进行模糊。

  • 由于滤波也会丢失细节,用原图减去滤波后的图像,认为数值高的地方为原本的细节,再把这部分添加回来,可以找回一部分细节。

 

5. 白平衡(White-balance)和色彩空间变换(White-balance)

这个部分需要把raw—RGB转换到一个通用色彩空间,以供后续处理,文章以CIE XYZ为例,但是实际上常用ProPhoto RGB。

白平衡

  • 第一个阶段即需要通过白平衡去矫正原来的raw-RGB的值。
首先要得到Sensor对于光照环境的RGB值,然后用这个对角矩阵变换,就可以得到白平衡之后的颜色。
这里最关键的其实就是如何去得到这个白平衡设置值,这个值可以根据经验以及环境光照的色温去手动设置,也可以借助成像设备的自动白平衡算法去计算得到,但是这个就对白平衡算法的要求比较高,目前还有很多人在研究。

而白平衡中最关键的就是我们要知道哪里是图片中白色区域或者灰色区域,文章提到了两个简单的算法:

第一种就是“Gray world”算法,假设平均光谱的值是灰色,图像的平均应该具有相同的能量,即R=G=B,基于这个假设将图像的平均作为灰色。
第二种方法假设高光点是光源的一个镜面反射,那么就可以以R,G,B的最大值去估计光源的颜色。

同样实际上的白平衡算法会更加的复杂,这里只是个基础的传统处理方法。

色彩空间转换

  • 第二个阶段是将raw-RGB映射变换到CIE XYZ色彩空间。
相机厂商会先去标定两个极值下(CCT 2500K与CCT 6500K)的CST矩阵,后续的在这个范围内的色温就可以通过这两个标定好的极值去做插值得到,就像这里的4300K。所以这个阶段的变换矩阵也同样需要上阶段估算出环境色温。

 

6. 调色(Color manipulation)

基本工作完成后,在这个阶段对色彩进行调整或者风格化处理,使得最终的成像看起来更漂亮。不同相机厂商成像风格的差异应该也主要在这个阶段产生,不同厂商有不同厂商的色彩科学。
一般来说通过LUT(3D Look up table)和1D的曲线进行调整,摄影后期LR或者PS调色的色调曲线应该也是在进行这一步一样的工作。

再进一步的,也可以针对不同区域、和颜色进行单独的调整(Local tone mapping & Selective color manipulation),LR和PS等后期软件中也有类似的针对不同区域、颜色的单独调整功能。

  • 关于皮肤调色相关文章,有空研究研究

 

7. Re-scaling image

即根据取景器要求重新进行缩放,也可以叫做数码变焦或者超分辨率,传统的方法这里没有提,这方面AI的方法好像用的更多。

 

8. 色彩空间转换(sRGB conversion (or other color space))

最后转换到我们需要的色彩空间,并且使用Gamma编码,之前有提过即给人眼更敏感的暗部分配更多的编码空间

 

9. 图像压缩

即将图片进行压缩,涉及到图像压缩编码技术比较复杂,这里只了解流程。
最常见的就是jpeg压缩,但是文章中提到现在苹果已经在使用的HEIC正在慢慢替代他们。

 

10. 零延时拍照技术 (Zero Shutter Lag)

比较好理解,由于图像的处理经过前面各个流程是需要一定的时间的,所以如果按下快门才开始记录,实际得到的是有时延的。

所以实际上当取景器开始预览,相机便已经开始不断的去缓存快照,当按下快门后,根据按下时间去找对应的缓存帧就可以实现零延时。





往期推荐

从校招入职腾讯的四年工作总结

嵌入式软件中预编译指令常见用法

单片机裸机 vs RTOS多线程

玩嵌入式得弄明白DMA原理

混说Linux 百度研发工程师,分享Linux干货,和大家一起学习!
评论
  • 在快速发展的能源领域,发电厂是发电的支柱,效率和安全性至关重要。在这种背景下,国产数字隔离器已成为现代化和优化发电厂运营的重要组成部分。本文探讨了这些设备在提高性能方面的重要性,同时展示了中国在生产可靠且具有成本效益的数字隔离器方面的进步。什么是数字隔离器?数字隔离器充当屏障,在电气上将系统的不同部分隔离开来,同时允许无缝数据传输。在发电厂中,它们保护敏感的控制电路免受高压尖峰的影响,确保准确的信号处理,并在恶劣条件下保持系统完整性。中国国产数字隔离器经历了重大创新,在许多方面达到甚至超过了全球
    克里雅半导体科技 2025-01-03 16:10 121浏览
  • 自动化已成为现代制造业的基石,而驱动隔离器作为关键组件,在提升效率、精度和可靠性方面起到了不可或缺的作用。随着工业技术不断革新,驱动隔离器正助力自动化生产设备适应新兴趋势,并推动行业未来的发展。本文将探讨自动化的核心趋势及驱动隔离器在其中的重要角色。自动化领域的新兴趋势智能工厂的崛起智能工厂已成为自动化生产的新标杆。通过结合物联网(IoT)、人工智能(AI)和机器学习(ML),智能工厂实现了实时监控和动态决策。驱动隔离器在其中至关重要,它确保了传感器、执行器和控制单元之间的信号完整性,同时提供高
    腾恩科技-彭工 2025-01-03 16:28 164浏览
  • 在测试XTS时会遇到修改产品属性、SElinux权限、等一些内容,修改源码再编译很费时。今天为大家介绍一个便捷的方法,让OpenHarmony通过挂载镜像来修改镜像内容!触觉智能Purple Pi OH鸿蒙开发板演示。搭载了瑞芯微RK3566四核处理器,树莓派卡片电脑设计,支持开源鸿蒙OpenHarmony3.2-5.0系统,适合鸿蒙开发入门学习。挂载镜像首先,将要修改内容的镜像传入虚拟机当中,并创建一个要挂载镜像的文件夹,如下图:之后通过挂载命令将system.img镜像挂载到sys
    Industio_触觉智能 2025-01-03 11:39 113浏览
  •     为控制片内设备并且查询其工作状态,MCU内部总是有一组特殊功能寄存器(SFR,Special Function Register)。    使用Eclipse环境调试MCU程序时,可以利用 Peripheral Registers Viewer来查看SFR。这个小工具是怎样知道某个型号的MCU有怎样的寄存器定义呢?它使用一种描述性的文本文件——SVD文件。这个文件存储在下面红色字体的路径下。    例:南京沁恒  &n
    电子知识打边炉 2025-01-04 20:04 32浏览
  • 物联网(IoT)的快速发展彻底改变了从智能家居到工业自动化等各个行业。由于物联网系统需要高效、可靠且紧凑的组件来处理众多传感器、执行器和通信设备,国产固态继电器(SSR)已成为满足中国这些需求的关键解决方案。本文探讨了国产SSR如何满足物联网应用的需求,重点介绍了它们的优势、技术能力以及在现实场景中的应用。了解物联网中的固态继电器固态继电器是一种电子开关设备,它使用半导体而不是机械触点来控制负载。与传统的机械继电器不同,固态继电器具有以下优势:快速切换:确保精确快速的响应,这对于实时物联网系统至
    克里雅半导体科技 2025-01-03 16:11 165浏览
  • PLC组态方式主要有三种,每种都有其独特的特点和适用场景。下面来简单说说: 1. 硬件组态   定义:硬件组态指的是选择适合的PLC型号、I/O模块、通信模块等硬件组件,并按照实际需求进行连接和配置。    灵活性:这种方式允许用户根据项目需求自由搭配硬件组件,具有较高的灵活性。    成本:可能需要额外的硬件购买成本,适用于对系统性能和扩展性有较高要求的场合。 2. 软件组态   定义:软件组态主要是通过PLC
    丙丁先生 2025-01-06 09:23 36浏览
  • 根据Global Info Research项目团队最新调研,预计2030年全球封闭式电机产值达到1425百万美元,2024-2030年期间年复合增长率CAGR为3.4%。 封闭式电机是一种电动机,其外壳设计为密闭结构,通常用于要求较高的防护等级的应用场合。封闭式电机可以有效防止外部灰尘、水分和其他污染物进入内部,从而保护电机的内部组件,延长其使用寿命。 环洋市场咨询机构出版的调研分析报告【全球封闭式电机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球封闭式电机总体规
    GIRtina 2025-01-06 11:10 37浏览
  • 本文介绍Linux系统更换开机logo方法教程,通用RK3566、RK3568、RK3588、RK3576等开发板,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。制作图片开机logo图片制作注意事项(1)图片必须为bmp格式;(2)图片大小不能大于4MB;(3)BMP位深最大是32,建议设置为8;(4)图片名称为logo.bmp和logo_kernel.bmp;开机
    Industio_触觉智能 2025-01-06 10:43 30浏览
  • 随着市场需求不断的变化,各行各业对CPU的要求越来越高,特别是近几年流行的 AIOT,为了有更好的用户体验,CPU的算力就要求更高了。今天为大家推荐由米尔基于瑞芯微RK3576处理器推出的MYC-LR3576核心板及开发板。关于RK3576处理器国产CPU,是这些年的骄傲,华为手机全国产化,国人一片呼声,再也不用卡脖子了。RK3576处理器,就是一款由国产是厂商瑞芯微,今年第二季推出的全新通用型的高性能SOC芯片,这款CPU到底有多么的高性能,下面看看它的几个特性:8核心6 TOPS超强算力双千
    米尔电子嵌入式 2025-01-03 17:04 23浏览
  • 光耦合器,也称为光隔离器,是一种利用光在两个隔离电路之间传输电信号的组件。在医疗领域,确保患者安全和设备可靠性至关重要。在众多有助于医疗设备安全性和效率的组件中,光耦合器起着至关重要的作用。这些紧凑型设备经常被忽视,但对于隔离高压和防止敏感医疗设备中的电气危害却是必不可少的。本文深入探讨了光耦合器的功能、其在医疗应用中的重要性以及其实际使用示例。什么是光耦合器?它通常由以下部分组成:LED(发光二极管):将电信号转换为光。光电探测器(例如光电晶体管):检测光并将其转换回电信号。这种布置确保输入和
    腾恩科技-彭工 2025-01-03 16:27 162浏览
  • 车身域是指负责管理和控制汽车车身相关功能的一个功能域,在汽车域控系统中起着至关重要的作用。它涵盖了车门、车窗、车灯、雨刮器等各种与车身相关的功能模块。与汽车电子电气架构升级相一致,车身域发展亦可以划分为三个阶段,功能集成愈加丰富:第一阶段为分布式架构:对应BCM车身控制模块,包含灯光、雨刮、门窗等传统车身控制功能。第二阶段为域集中架构:对应BDC/CEM域控制器,在BCM基础上集成网关、PEPS等。第三阶段为SOA理念下的中央集中架构:VIU/ZCU区域控制器,在BDC/CEM基础上集成VCU、
    北汇信息 2025-01-03 16:01 175浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦