图像处理器概述 (XK-ISP)
本文介绍了ISP(图像处理器)的基本概念,从缺陷、颜色、噪声、清晰度、动态范围等5个影响图像质量的关键因素出发,详细介绍ISP中与这些因素相关联的功能模块。
Background
传统图像信号处理芯片即ISP,会处理来自图像传感器端的RAW图数据,以人眼感知质量为目标,设计出了多个图像处理模块,最终得到一张美观自然的彩色图像。标准的ISP一般都有缺陷校正、去噪、锐化、去马赛克、自动白平衡等模块。
首先是ISP处理的对象:RAW图数据。RAW图是CMOS或者CCD图像传感器将捕捉到的光源信号转化为数字信号的原始数据。因为图像传感器上每个进行光电转换的像素单元,本身是无法识别出光源中不同颜色成分的,因此需要在图像传感器上方覆盖一层色彩滤波阵列,让每一个像素只会得到R,G,B三基色中的一种彩色分量。因此RAW图的像素值的色彩是缺失的,人眼观看具有强烈的马赛克效应,需要经过ISP转换为标准的RGB图像,这就是ISP中的核心模块去马赛克(Demosaic)的功能。RAW图像数据一般是R、G、B三种像素值交错排列,这组成了常见的标准bayer格式。其中绿色颜色像素会是红色和蓝色像素的两倍,这是因为人眼对绿色更敏感,通过绿色像素能感知图像结构信息。
这里展示的是典型的相机系统结构。镜头模组lens作为光学系统将光信号投射到sensor的感光区域后,sensor 经过光电转换,将Bayer 格式的RAW图像送给ISP,ISP 经过算法处理,输出RGB 空间域的图像给后端的视频采集单元。在这个过程中,ISP 通过运行在其上的firmware 对ISP逻辑,lens和sensor 进行相应控制,进而完成自动对焦、自动曝光、自动白平衡等功能。其中,firmware 的运转靠视频采集单元的中断驱动。另外ISP还会有配套的图像质量调优工具PQ tools,它通过网口或者串口完成对ISP 的配置参数调整。
ISP Pipeline
LSC负责对镜头阴影矫正,去除图像阴影。镜头阴影(Lens Shading)主要分为2种:亮度阴影(LumaShading)和色彩阴影(Color Shading)。
亮度阴影就是我们常说的暗角/渐晕,表现为图像中心区域较亮,四周偏暗。亮度阴影的成因主要有2种:
- 镜头本身的机械结构导致。镜头的各模块在制作和组装的过程中存在一定的工艺误差,从而影响光线在镜头内部的传播。如图所示,较大角度进入镜头的一些光线被镜头遮挡,这些边缘位置上的光线进入sensor时的亮度大幅衰减。
- 镜头的光学特性引起。对于整个镜头,可将其视为一个凸透镜。而凸透镜中心的聚光能力远大于其边缘,从而导致图像传感器中心的光强度大于四周。此种现象也叫做边缘光照度衰减。
色彩阴影表现为图像中心区域与四周颜色不一致,即图像的四周或中心区域出现偏色。色彩阴影的成因较为复杂,影响因素较多,这里做简要介绍:
- 镜头本身的光学特性(色散现象),如图所示,镜头对不同波长光线的折射率不同,进而使得它们聚焦位置不一样,导致传感器获得的色彩信息存在偏差。
- 此外镜头和图像传感器之间还会引入红外截止滤波片(IR-Cut filter),传感器每个像素之上还制造有加强聚光能力的微透镜,它们的存在也会引入额外的色差问题。
在实际应用中,ISP中镜头阴影矫正模块会存储一组标准光源下的校正系数,通过检测色温决定使用何种光源条件下的校正系数。对于非标准光源的情况,增益值由标准光源下的增益值插值得出。该步骤由上位机完成。
DPC坏点校正模块用于校正图像传感器中对外界光照失效而呈现为极亮或极暗的像素点(坏点),这些坏点会因传感器的制造瑕疵以及器件随时间的磨损而出现。
BLC黑电平校正存在于各个ISP的处理模块中,在真实情况下,当场景信息不存在,可以理解为全黑时,传感器不会输出为0,这是因为sensor本身有暗电流导致在没有光照进来的条件下pixel也有电压输出;此外传感器中ADC模块难以将接近0的信息进行转化。因此在其他模块对数据做处理时,需要先减去黑电平,消除图像信息误差。如图所示,若不进行黑电平校正,最后图像色彩会不自然。
去马赛克模块通过色彩插值来恢复RAW数据中每个像素缺失的色彩信息,而该模块同时对图像的清晰度和噪声都有显著影响,是ISP中的核心模块之一。
色彩插值的一般思路是:根据图像信息平滑性的特性,使用像素点周围与缺失色彩的同色信息来完成插值。因此如何设计一个鲁棒的采样机制是去马赛克算法的核心。
这里展示了去马赛克算法会遇到的经典问题。比如因为边缘色彩过渡强烈,算法会难以对待插值点的缺失色彩进行正确地采样,因此会出现伪彩、拉链效应等。同时当图像空间频率高而采样频率不足时,就会出现混叠问题,导致图像中出现伪影。目前也有人在做进一步的研究,比如使用深度学习完成联合去马赛克去噪任务。
另一个核心模块是白平衡(White Balance),该模块的任务是确保在不同的光源条件下,场景目标呈现色彩是一致的。对图像进行白平衡的依据来源于人类视觉系统所具有的色彩恒常性(Color Constancy),即人类对物体色彩感知不受光源影响。该机制的一种体现如图所示,在这张图片中,没有一个像素点表示红色,但是当我们从整体来看这张图,立刻会产生“红色草莓”、“黄色木桌”、“白色盘子”的印象。这就是我们大脑根据一些“先验知识”进行自动白平衡的结果。但这张图片的颜色本身还是很不自然,该问题发生的典型情况就是相机Sensor在不同色温的光源下,被摄对象会呈现出不同的颜色,也就是色偏(Color Cast)问题。
白平衡的常用校正模型是对角模型,其数学含义是当我们能正确估计光源色温后,将输入图像的各色彩通道乘以对应增益校正值,得到标准光源下的色彩值。白平衡的核心也是光源估计问题。这里介绍一个经典的算法灰度世界法,该算法的假设是色彩丰富的图像中,场景RGB颜色分量的平均值就能反应光源颜色,在达成白平衡的图像中图像各颜色通道的平均值应该是相等的,即R平均=G平均=B平均,其算法流程如图所示。
第一步,计算图像各颜色通道的平均值和整体的平均值,这里该整体平均值记作gray; 第二步:若指定了标准光源色温,则用标准光源颜色值与图像各颜色通道平均值相比得到增益系数。同时也可以将Gray值与各颜色通道平均值相比,得到增益系数。后一种做法属于自动白平衡。最后使用对角校正模型就可以完成白平衡操作。
另外,在ISP中都会有一个颜色校正模块,CCM(Color Correction Matrix),它是通过色彩矫正矩阵对图像的色彩进行线性变换,使得校正后的图像的效果更接近人眼的视觉感知。该矩阵值也是经过标定得到的。这里存在一个约束是,CCM不能破坏白平衡,因此CCM需要在白平衡之后,且要保证灰色系区域仍满足R=G=B。
数字图像信号在采集、传输和显示过程中受到成像设备以及外部环境的影响,会包含许多噪声,噪声会影响图像的视觉效果,也会给后续的图像分析,如压缩、编码、识别等,造成不利影响,因此需要对噪声图像进行去噪处理。
ISP中RAW图去噪环节更靠近传感器端,因此该环节能够更有效地抑制图像信号采集过程中遇到的噪声,如光子散粒噪声、固定模式噪声、暗电流噪声等。但即使经过RAW图去噪,由信号采集环节引入噪声也不会完全消除,而且当ISP将采集的图像信号转换到YUV域时,图像信号又经过ISP中多个处理模块,每个模块不同程度地引入了新的噪声。YUV图像去噪环节可以在图像最终成像前再次有效地增大图像信号的信噪比,提高图像质量,直接影响到后续图像视觉效果。该环节处理的信息包括图像亮度和色度。
人类对噪声的知觉特性对去噪算法的设计具有指导意义:
(1)人眼对亮度和色度的空间分辨能力是不同的,在低频段对色度的分辨能力大于亮度,而图像主体内容是由低频成分决定的。
(2)噪声影响的一般规律是幅度小的高频噪声对主观图像质量影响较小,而幅度大的低频噪声对主观图像质量影响较大。
因此基本的去噪假设是对于画面中的平坦区域(Homogeneous Area), 也就是图像低频成分,认为像素变化主要是由噪声引起的,可以加大降噪力度;对于画面中的纹理区域(Textured Area), 也就是图像高频成分即细节,认为像素变化主要是由纹理引起的,噪声只占较小部分,需要控制降噪力度,尽量保持图像的纹理特征。
下面简单介绍一些常用的去噪思路。第一种是多分辨率分析。
多分辨率分析的出发点是在某种分辨率下无法检测的特性,在另一种分辨率下便容易检测。从数学角度上看图像信号,图像是具有局部变化统计特性的亮度值的二维矩阵,我们难以对整幅图像建立统计模型,因此可以考虑在不同图像分辨率下分析不同尺度的图像特征。
第二种是经典的NLM算法。
利用图像全局的自相似性,以图像块为单位在图像中寻找相似区域,再对这些区域求平均,在图像平滑的基础上能很好地保持细节信息,鲁棒性较好。
NLM算法思路如图所示,式中p代表待去噪像素位置,q代表用于加权计算的参考像素位置,v(x)表示像素x所在图像块构成的像素值向量,权重w(p,q)表示像素p和q之间的相似性,注意两个像素间的相似性一般都是由对应图像块的像素值向量v(x)决定的。根据NLM的思想,因为 q1和q2像素与待去噪点p像素有更相似的邻域,而q3像素邻域与p像素差异较大,因此,对p像素的去噪,q1和q2像素的贡献更大。
权重w(p,q)的计算,可以用高斯加权的欧式距离来衡量,其中α为高斯核函数的标准差,一般取值为2~5。
最终权重w(p,q)计算公式如右式所示,式中Z(p)为权重归一化常数,参数h控制指数函数的衰减速度,取值与图像中的噪声水平σ线性相关,取h=λ∗σ,σ为噪声图像的标准差。
注意,NLM最后计算待去噪像素p自身所在图像块权重w,即p=q时,取当前最大权重。
双边滤波是在高斯滤波原理的基础上做了扩展,除了考虑像素距离之外,还考虑当前像素和周围像素亮度的差异,对距离近但颜色差异大的像素会分配小的权重,这样就得到边缘保持效果。
双边滤波的滤波器设计由两个函数构成,一个函数是由像素几何空间距离决定空间域滤波器系数,另一个是由像素差值决定值域滤波器系数。公式如图所示,式中p表示当前处理像素位置,q表示邻域内参考像素位置,I表示像素值,G表示高斯核函数,σ为高斯核函数的方差系数,S代表整张图像,Wp是权重值的总和,用于归一化权重。从该公式可以看到,在图像的平坦区域,像素值变化很小,对应的像素值域(Range Weight)滤波器系数接近于1,此时空间域权重(Space Weight)起主导作用,相当于进行高斯模糊;在图像的边缘区域,像素值变化很大,像素值域滤波器系数影响变大,变化规律是随着像素值差的增大,最终滤波器系数会减小,从而保持了边缘的信息。
清晰度是图像质量的关键评价指标之一,对清晰度定性的理解,可以认为它反映了图像中边缘和纹理的可分辨程度。对清晰度定量的分析,主要有两个直接相关的因素:锐度和分辨率。锐度描述的是图像边缘过渡的快慢,过渡越快,锐度越高。分辨率描述的是像素数量,离散的像素数量越多,越能逼近真实世界的连续信号。
最下边的一组图展现不同锐度和分辨率下的图像感知效果。最左边,高锐度高分辨率的图像,纽扣的边缘清晰可见,能呈现出衣服真实的纹理。当锐度下降,图像变得模糊;当分辨率下降,因为混叠,衣服纹理变得不规则,不够细腻。
ISP中的锐化处理的都是图像的锐度,基本思路也就是增强图像的边缘对比度。如图所示,让边缘过渡得更剧烈,但就会引入光晕问题,在图像边缘出现白边。
现实世界的场景丰富多彩,这些场景具有很高的动态范围,场景的动态范围定义为场景中最亮部分的亮度值与最暗部分的亮度值之比。动态范围越广,图像中所能表现的层次就越丰富。
但设备中的显示位深有限,若左下图所示,当显示系统的动态范围不足时,在图像捕捉过程中很有可能会发生钳位(clipping),如果是亮区发生饱和称为高光钳位(high light clipping),如果是暗区发生钳位则称为阴影钳位(shadow clipping),在同一场景中两者可能会同时存在。
因此需要使用GTM模块,在有限动态范围媒介上近似显示高动态范围。
此外,如右下图所示,如果不做色调映射处理,摄像机直接输出最原始的线性图像,但在人眼看来图像比正常的要暗,这是因为人的视觉系统对视野中的暗区更敏感,视觉系统对暗区信号做了提升以形成更强烈的知觉。而这个特性也是ISP中引入伽马校正的来源。
因为人眼的感知非线性,在图像显示结果上,我们感知的中等灰度实际只有纯白色物理关照度的1/4~1/5
The End
有关影像应用的设备都离不开那一颗小小的图像处理芯片,各知名相机厂家都有着精心打磨的专属影像处理器。除了用相机记录生活的美,我们的生活中还会遇见大量的成像设备,如安防监控、智能家居、自动驾驶等,这类有关视觉信息的分析应用场景,也离不开图像处理芯片对于场景画面进行基础处理。
- 点赞
- 收藏
- 关注作者
评论(0)