0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_BxU6dNQb 来源:混说Linux 2023-12-09 09:51 次阅读

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

bd18629c-95b9-11ee-8b88-92fbcf53809c.png

1. 传感器捕获光信号

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

bd31eb0e-95b9-11ee-8b88-92fbcf53809c.pngbd4d6b18-95b9-11ee-8b88-92fbcf53809c.png

常见的彩色图像格式是RGB三通道的,但是最开始的光信号采集却不是每个像素都会采集RGB三个像素的信息,这样做会有成本以及空间的问题,而是收集三种不同光的Sensor成拜尔阵列分布,后续再通过插值等手段去恢复。

bd6d64cc-95b9-11ee-8b88-92fbcf53809c.png

CFA的作用是过滤其他光线,使得我们需要的红、绿、蓝三种波段的光才能进入传感器。

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

bd7ad08a-95b9-11ee-8b88-92fbcf53809c.png

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

bd96a896-95b9-11ee-8b88-92fbcf53809c.png

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

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

ISO

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

但是其实相机捕捉到的实际光信号是不会因ISO变化而改变的,受限于光圈大小和Sensor曝光时间(快门时间),调整ISO本质上是调整传感器对得到的光信号的放大倍数,而在放大这个信号的同时,噪声也被放大了,就出现了前面提到的现象。

bde772ee-95b9-11ee-8b88-92fbcf53809c.png

像素强度(Pixel "intensity")是个绝对值,主要取决于:

增益(ISO)

曝光时间(Exposure)

将信号数字化的硬件设计

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

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

bdfce278-95b9-11ee-8b88-92fbcf53809c.png

缺陷像素遮盖(Defective pixel mask)

be194422-95b9-11ee-8b88-92fbcf53809c.png

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

平场矫正(Flat-field correction)

be2c1160-95b9-11ee-8b88-92fbcf53809c.png

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

be4022ea-95b9-11ee-8b88-92fbcf53809c.png

3.去马赛克

即前面提到的,由于CMOS的RGB采集像素是分布不均匀的,需要通过插值去进行补偿,使得最终得到的每个Pixel都有RGB三个通道的值。

be58d056-95b9-11ee-8b88-92fbcf53809c.png

文章里提到了两个插值方法,即简单的平均插值,或根据与周围像素的相似度去分配权限求加权平均去插值。但是发展到今天实际上的技术应该要复杂很多,就不赘述了。

平均插值:

be6a928c-95b9-11ee-8b88-92fbcf53809c.png

按相似度加权:

be8810d2-95b9-11ee-8b88-92fbcf53809c.png

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

beb41dee-95b9-11ee-8b88-92fbcf53809c.png

4.降噪(Noise reduction)

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

bec95376-95b9-11ee-8b88-92fbcf53809c.png

噪声主要来源:

由于光子自身量子性质产生的噪声,这部分是与成像系统无关的,服从泊松分布;

传感器和电路系统自身的噪声,如暗电流等,服从正态分布;

而增益g又进一步放大了这个噪声(即IOS),所以一般ISO越高需要采取更加激进的降噪算法。

beed59ce-95b9-11ee-8b88-92fbcf53809c.png

文中提到了一个简单的降噪算法,现在采用的技术会更复杂,但是思路值得借鉴。

befe9798-95b9-11ee-8b88-92fbcf53809c.png

IOS越高,通过滤波进行模糊。

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

bf35031e-95b9-11ee-8b88-92fbcf53809c.png

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

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

bf58a116-95b9-11ee-8b88-92fbcf53809c.pngbf7456ae-95b9-11ee-8b88-92fbcf53809c.png

白平衡

第一个阶段即需要通过白平衡去矫正原来的raw-RGB的值。

bf880e1a-95b9-11ee-8b88-92fbcf53809c.png

首先要得到Sensor对于光照环境的RGB值,然后用这个对角矩阵变换,就可以得到白平衡之后的颜色。

bfa85dbe-95b9-11ee-8b88-92fbcf53809c.png

这里最关键的其实就是如何去得到这个白平衡设置值,这个值可以根据经验以及环境光照的色温去手动设置,也可以借助成像设备的自动白平衡算法去计算得到,但是这个就对白平衡算法的要求比较高,目前还有很多人在研究。

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

第一种就是“Gray world”算法,假设平均光谱的值是灰色,图像的平均应该具有相同的能量,即R=G=B,基于这个假设将图像的平均作为灰色。

bfca7b42-95b9-11ee-8b88-92fbcf53809c.png

第二种方法假设高光点是光源的一个镜面反射,那么就可以以R,G,B的最大值去估计光源的颜色。

bfe83286-95b9-11ee-8b88-92fbcf53809c.png

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

bffbe9e8-95b9-11ee-8b88-92fbcf53809c.png

色彩空间转换

第二个阶段是将raw-RGB映射变换到CIE XYZ色彩空间。

c0141c84-95b9-11ee-8b88-92fbcf53809c.png

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

c032bb8a-95b9-11ee-8b88-92fbcf53809c.pngc050e9ca-95b9-11ee-8b88-92fbcf53809c.png

6.调色(Color manipulation)

基本工作完成后,在这个阶段对色彩进行调整或者风格化处理,使得最终的成像看起来更漂亮。不同相机厂商成像风格的差异应该也主要在这个阶段产生,不同厂商有不同厂商的色彩科学。

c06a7340-95b9-11ee-8b88-92fbcf53809c.png

一般来说通过LUT(3D Look up table)和1D的曲线进行调整,摄影后期LR或者PS调色的色调曲线应该也是在进行这一步一样的工作。

c0873976-95b9-11ee-8b88-92fbcf53809c.pngc0a7be80-95b9-11ee-8b88-92fbcf53809c.png

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

c0b4920e-95b9-11ee-8b88-92fbcf53809c.pngc0d2e222-95b9-11ee-8b88-92fbcf53809c.png

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

c0e77890-95b9-11ee-8b88-92fbcf53809c.png

7.Re-scaling image

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

c100a22a-95b9-11ee-8b88-92fbcf53809c.pngc11ca34e-95b9-11ee-8b88-92fbcf53809c.png

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

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

c1639ba0-95b9-11ee-8b88-92fbcf53809c.png

9. 图像压缩

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

c180310c-95b9-11ee-8b88-92fbcf53809c.png

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

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

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

c19d6b78-95b9-11ee-8b88-92fbcf53809c.png








审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RGB
    RGB
    +关注

    关注

    4

    文章

    798

    浏览量

    58376
  • 光信号
    +关注

    关注

    0

    文章

    432

    浏览量

    27740
  • CMOS传感器
    +关注

    关注

    4

    文章

    117

    浏览量

    24493
  • 图像信号处理

    关注

    0

    文章

    17

    浏览量

    7481

原文标题:相机图像信号处理流程(ISP)

文章出处:【微信号:混说Linux,微信公众号:混说Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    针对手机的Milbeaut图像信号处理LSI芯片

    许多客户更喜欢专用图像信号处理器(ISP),因为它们能提供与高端紧凑型数码相机相当的图像质量和效
    发表于 12-09 11:47 4181次阅读
    针对手机的Milbeaut<b class='flag-5'>图像</b><b class='flag-5'>信号</b><b class='flag-5'>处理</b>LSI芯片

    TL3588--ISP图像处理开发案例

    TL3588--ISP图像处理开发案例
    的头像 发表于 01-25 09:14 690次阅读
    TL3588--<b class='flag-5'>ISP</b><b class='flag-5'>图像</b><b class='flag-5'>处理</b>开发案例

    ISP处理流程及应用场景

    前言:本篇blog主要为讲述ISP处理流程及其应用场景。一、概述ISP(Image Signal Processor), 即图像
    发表于 09-25 15:11

    Rockchip SoC上的图像信号处理模块基本知识介绍

    1、Rockchip SoC上的图像信号处理模块介绍ISP 详细信息ISP 包括:MIPI 串行
    发表于 07-14 16:57

    ISP图像处理芯片

    本文主要介绍了一种ISP图像处理芯片,FH8510是一款针对CIS(CMOSImageSensor)的图像
    发表于 01-12 17:31 1.9w次阅读
    <b class='flag-5'>ISP</b><b class='flag-5'>图像</b><b class='flag-5'>处理</b>芯片

    ISP图像处理技术的基本框架和校正方法

    ISP(Image Signal Processor),即图像处理,主要作用是对前端图像传感器输出的信号做后期
    的头像 发表于 03-09 16:11 7640次阅读

    ISP算法及架构分析介绍

    xkISP 是基于 Xilinx HLS 的开源图像信号处理器 (ISP)。
    的头像 发表于 07-05 10:16 3543次阅读

    isp的主要内部构成包括哪些

    isp的主要内部构成包括哪些 ISP就是Image Signal Processor 的简称,也就是图像信号处理器。
    的头像 发表于 10-18 17:10 3929次阅读
    <b class='flag-5'>isp</b>的主要内部构成包括哪些

    CMOS图像传感器的ISP算法

    ISP,也称为图像信号处理器(Image Signal Processor),在CMOS图像传感器(如
    的头像 发表于 05-28 11:39 4053次阅读
    CMOS<b class='flag-5'>图像</b>传感器的<b class='flag-5'>ISP</b>算法

    图像信号处理ISP有哪些产品趋势?

    国内手机厂商在高端化进程中,自研芯片不是新鲜事,从小米澎湃C系列、vivo芯片V系列,到OPPO曾经发布的专用NPU芯片MariSilicon X,这些自研芯片均与图像信号处理ISP
    的头像 发表于 09-07 15:40 1106次阅读
    <b class='flag-5'>图像</b><b class='flag-5'>信号</b><b class='flag-5'>处理</b><b class='flag-5'>ISP</b>有哪些产品趋势?

    国内图像信号处理ISP)厂商名录

    视觉感知是数字时代信息获取的入口,ISP(Image Signal Processing) 图像信号处理,主要用来对前端图像传感器输出
    的头像 发表于 09-07 15:46 2442次阅读
    国内<b class='flag-5'>图像</b><b class='flag-5'>信号</b><b class='flag-5'>处理</b>(<b class='flag-5'>ISP</b>)厂商名录

    华为Mate 60 Pro影像系统ISP图像处理芯片技术解析

    ISP芯片即“Image Signal Processor”(图像信号处理器),它诞生于美国登月探测时代。彼时NASA在月球探测中发现,月球车上的模拟
    发表于 09-12 11:27 3866次阅读
    华为Mate 60 Pro影像系统<b class='flag-5'>ISP</b><b class='flag-5'>图像</b><b class='flag-5'>处理</b>芯片技术解析

    FPGA图像处理_ISP算法DPC流程

    DPC通常作为ISP算法流程里面的第一个模块,原理也很简单。
    的头像 发表于 11-25 10:04 1717次阅读
    FPGA<b class='flag-5'>图像</b><b class='flag-5'>处理</b>_<b class='flag-5'>ISP</b>算法DPC<b class='flag-5'>流程</b>

    RK3568-ISP图像处理开发案例

    RK3568-ISP图像处理开发案例
    的头像 发表于 01-19 11:46 959次阅读
    RK3568-<b class='flag-5'>ISP</b><b class='flag-5'>图像</b><b class='flag-5'>处理</b>开发案例

    开源ISP(Infinite-ISP)介绍

    公开,都是给一堆函数自己调用调试。因为厂商将 ISP 算法视为保持市场竞争力的独特秘诀。虽然之前介绍了很多开源ISP项目(优秀的 Verilog/FPGA开源项目介绍(二十六)-
    的头像 发表于 11-18 10:21 160次阅读
    开源<b class='flag-5'>ISP</b>(Infinite-<b class='flag-5'>ISP</b>)<b class='flag-5'>介绍</b>