ISP算法:深刻聊聊lens shading

1、简介

关于什么是成像中的lens shading这里直接引用一句英文的definition:“The term shading describes the light fall-off or color variation from the sensor center to the corners that do not originate from the captured scene”。是的,lens shading通常是分为light fall-off和color variation,通常咱们称为luma shading(光学上称为vignetting)和color shading。为了更直接直观的表述,以下图所示,相信咱们很容易就能区分两种shading。算法

咱们再看一张,能够发现lens shading对成像效果的影响仍是很是大的,是不可容忍的。函数

成因分析:.net

一切成像的最终效果与人眼的差别其实咱们均可以从软硬件两个角度来找到成因。luma shading的造成缘由能够简单的由凸透镜成像来解释,以下图所示,成像中心的聚焦光线要比四周多,所以亮度也要大于四周。此外,机械装配过程当中的一些偏差也可能致使必定程度的luma shading。不过luma shading的校订是较为容易的,通常是中心到四周按照cos4θ的规律变化的。3d

 而对于color shading而言,状况就复杂的多。首先,咱们来看看手机镜头的组成,手机镜头主要包括了镜头固定物(Lens Holder)、镜头(Lens)、红外截止滤波片(IR-cut filter)、图像传感器(Image Sensor)和印制电路板(PCB),其中IR-cut filter和image sensor是引发color shading的主要缘由。blog

红外截止滤波片位于镜头和图像传感器之间,目的是为了消除投射到Sensor上没必要要的光线,防止Sensor产生伪色/波纹,从而提升色彩还原性。Sensor能够感知人眼感知不到的红外光和紫外光,所以须要使用滤波片进行滤除,不然会致使红绿蓝像素点的亮度值与人眼观察到的亮度值存在较大的差别。那么红外截止滤波片是怎么带来color shading的呢?以下左侧图,108和110分别IR-cut filter和sensor,从该图能够发现光线在不一样的入射角度下通过IR-cut filter后的状况是不同的:入射角度越大,入射光线的光谱波长朝着较短的方向变化(这也就是意味着小sensor的广角镜头color shading更为严重)。这种不一致性表如今右图上能够发现:三种不一样入射角度下经过IR-cut filter后的红色份量是不同的,所以就带来了中心与四周的颜色不一致。get

了解完IR-cut filter,这里咱们再来看看sensor对color shading的影响。sensor的结构以下图所示,主要有微透镜、滤色片和感光片。为了使感光面积不受感光片的开口面积影响,通常会在其上方增长一层微透镜(Micro Lens),用于收集光线,提升感光度。但微透镜的主光线角CRA(Chief ray angle)值与镜头的CRA值通常是不匹配的,所以也会致使严重的偏色问题。这种状况有的文献也称为Pixel crosstalk color shading。it

2、校订

说了这么多lens shading的成因和给成像效果带来的巨大影响,那么怎么去有效地校订呢?从全球各大公司(如苹果、高通、三星、ARM等)公布的文献资料来看,大体实施的校订方法可分为如下几种:io

①基于径向的shading correct算法变量

这种校订算法比较简单粗暴,其理论依据就是以图像中心位置为base,按照像素点到中心点距离大小进行不一样比例的补偿(上面有讲到,中心到四周按照cos4θ的规律变化的),换言之就是直接拟合了一条补偿函数,距离是自变量。这种方法实现起来虽然简单,针对shading对称性比较好的状况(圆心刚好在中心点)颇有效,可是若是对于镜头装得倾斜了,或者存在局部不良的状况就很差用了。原理

②基于网格的shading correction算法

这种算法实现将图像分红n x m个网格,每一个网格的四角都有一个校订系数,而后把这个nxm个格子的校订系数存起来。须要说明的是,这些校订系数能够经过拍摄一张平坦图像来进行标定。在算法运行时,根据每一个像素的坐标,就能够知道这个像素落在哪一个网格里,那么就能够在该网格内部运用插值算法(或者cos4θ、logN)来模拟衰减曲线,就能够计算出每一个像素的校订值。

③dynamic shading correction

上述两种算法在面对一些复杂混光场景的case都会出现补偿不足的缺点,很难有效地cover全部的应用场景。因而就出现了这种基于场景来动态调整的shading correction算法,该算法目前可查的资料很少,具体的实现方案我也没有不是很了解,可是大体的原理是经过滤波后的图像进行重建图像,这里贴上知乎@张兴的回答。欢迎对这部份内容感兴趣或者比较了解的大佬评论交流!

 

 

 

 

参考资料:

https://www.image-engineering.de/library/image-quality/factors/1073-shading

https://zhuanlan.zhihu.com/p/47207354

https://blog.csdn.net/yxyx13120297/article/details/85206426

相关文章
相关标签/搜索