【ISP】浅析Lens Shading

从2000年9月底摄像头首次出现在手机上算起,到如今成为诸多智能设备不可或缺的一部分,便携式手机摄像头已经走过了18年的发展历程。随着手机智能化、轻薄化的发展进程,其搭载的摄像头也随之发生了变化,但基本结构并未有太大的改变。通常而言,一个摄像头硬件应包含以下五个部分:外壳(Housing)或者镜头固定物(Lens Holder)、镜头(Lens)、红外截止滤波片(IR-cut filter)、图像传感器(Image Sensor)和印制电路板(PCB)。其中,镜头、红外截止滤波片和图像传感器是组成摄像头的核心部件,也是引起Lens Shading的主要部分。

图1 摄像头分解示意图
关于Lens Shading,一直未找到明确且合理的解释。不论是维基百科,还是百度百科,均为对该词条进行解释。但在一些博客和文献中,有人将Lens Shading称为暗角,也有将Lens Shading视为镜头阴影/镜头暗影,此外,还有称Lens Shading为亮度均匀性的。称谓很多,但没有固定且统一的说法。在文中,本人更偏向于镜头暗影的说法,即可用“暗”表示图像亮度变化引起的暗角,也能用“影”表示图像中出现的偏色现象。

图2 Lens Shading解释查询结果
Lens Shading可细分为Luma Shading(亮度均匀性)和Color Shading(色彩均匀性)两种。其中,Luma Shading就是我们常说的暗角。既图像呈现出中心区域较亮,四周偏暗的现象。如图3-(a)所示。Color Shading则表现在图像中心区域与四周颜色不一致。即图像的中心区域或者四周出现偏色。如图3-(b)所示。

图3 Lens Shading示意图
有因才有果,为了能够更好地了解Lens Shading,需要对其进行刨根问底。从上述内容我们知道Lens Shading可细分为两种,为此,对两种Lens Shading的成因进行分开讨论。对于Luma Shading的成因而言,可分为以下两种:

1.由摄像头本身的机械结构导致产生。由于摄像头各模块在制作和组装的过程中,均存在一定的工艺误差,从而影响物体光线在摄像头内的传播。
2.由镜头(Lens)的光学特性引起。对于整个镜头,可将其视为一个凸透镜。由于凸透镜中心的聚光能力远大于其边缘,从而导致Sensor中心的光线强度大于四周。此种现象也称之为边缘光照度衰减。对于一个没有畸变的摄像头,图像四周的光照度衰减遵循cos4θ
cos4θ的衰减规律。在考虑镜头构造和畸变的影响时,图像四周的光照度衰减可能不再遵循cos4θ

cos4θ的衰减规律。
而Color Shading的成因则要相对复杂的多。在分析其成因之前,需要对IR-Cut filter和Image Sensor有所了解。首先,可在摄像头分解示意图中清晰地看到,红外截止滤波片位于镜头和图像传感器之间。主要用于消除投射到Sensor上不必要的光线,防止Sensor产生伪色/波纹,从而提高色彩还原性。由于图像传感器上的RGB像素滤波片不能滤除红外光和紫外光,因此需要使用另外的滤波片进行滤除,否则会导致红绿蓝像素点的亮度值与人眼观察到的亮度值存在较大的差异。就目前而言,红外截止滤波片可分为干涉型、吸收型和混合型三种,其三者的截取范围如图红外截止滤波片截取区域如图4-(a)所示。其中普通的IR-cut filter为干涉型红外截止滤波片,在可见光区域有较高的透过率,存在较低反射率,而在红外区域正好相反,反射率较高,透过率很低。但成角度拍摄照片时,红外光在IR膜上会有较大反射,经过多次反射后,被Sensor接收从而改变图像R通道的值,引起图像偏色问题。蓝玻璃则是吸收型红外截止滤波片,对红外光有很强的吸收作用,不存在很大的反射,能在一定程度上减轻渐晕和色差问题。此外,便是使用前两者混合的方式对想要的光谱区域进行截取,虽然能够缓解入射光角度问题,但使得抵达传感器的光量减少了,从而引入了更多的噪声。如图4-(b)所示。其次,在红外截止滤波片之后便是图像传感器,主要由相间的RGB像素感光块构成。为了使感光面积不受感光片的开口面积影响,一般会在其上方增加一层微透镜(Micro Lens),用于收集光线,提高感光度。但微透镜的主光线角CRA(Chief ray angle)值与镜头的CRA值不匹配便会导致严重的shading问题。

图4 红外滤波片截止区域示意图
结合上面所述部分和自己的理解,可将Color Shading的成因可分为以下几点:

1.由于镜头对不同光谱光线的折射程度不同,导致入射光线中不同波长的光线落在Sensor的不同位置,从而引起Color Shading。我们都知道光的色散现象,即白光通过三棱镜后会被分解为七色光。而产生这种现象的原因就是三棱镜对不同波长光线的折射不同,从而导致不同波长光线走过的光程不同。
2.由IR-Cut filter引入。具体描述详见上文。
3.由Sensor上微透镜的CRA与镜头的CRA不匹配导致。镜头的主光线角与传感器不匹配,会使传感器的像素出现在光检测区域周围,致使像素曝光不足,亮度不够。
4.在校正Lens Shading时,由于校正参数计算不准确导致。
通常而言,摄像头在拍摄原始图像(raw)之后,会经过图像信号处理器(ISP)处理之后再呈现在用户面前。在整个ISP的pipeline中,会含有一个LSC(Lens Shading Correction)模块,用于校正镜头暗影。其校正前后的图像如图5-(a), 5-(b)所示。Alt
图5 Lens Shading校正前后示意图

在对图5-(b)进行白平衡处理后,便可用Imatest软件对其亮度均匀性和色彩均匀性进行分析,通过Shading的测试原理,确定图像校正的好坏。对于亮度均匀性和色彩均匀性的测试原理如下。

亮度均匀性测试原理:在整幅图像中的四角和中央分别取相同大小的区域,然后算出这些区域的亮度值,以中间区域为基准,用四角区域的亮度值和中间区域的亮度值相比,得到一个比值,这个比值越接近1越好,即Shading值 =(四角最暗处的亮度值Y/中心最亮处的亮度值)×100%。
色彩均匀性测试原理:把整幅图像等分成若干区域,然后算出这些中R/B、R/G或G/B的值,以中间区域为基准,用其他区域的比值和中间区域的比值相比,得到一个接近于1的数值,这些最终得到的比值越接近于1说明Color Shading越好。

【ISP】浅析Lens Shading相关推荐

  1. ISP——LSC(Lens Shading Correction)

    ISP--LSC(Lens Shading Correction) 现象 如图所示就是拍摄纯灰色卡(正常所有像素值一样)时shading的具体现象,上侧称为Luma shading,下侧称为color ...

  2. ISP Pipeline lens shading

    关于lens shading,我主要阐述lens shading产生的原因和shading 校正的简单模型,然后通过一个例子说明lens shading调试的注意点. 导致shading的几种原因 机 ...

  3. 【camera】【ISP】Lens Shading Correction镜头阴影校正

    ISP-LSC 镜头阴影校正 参考: https://zhuanlan.zhihu.com/p/389334269 https://blog.csdn.net/xiaoyouck/article/de ...

  4. ISP中的Lens shading整理不易

    1.Len shading 1.1 Lens CRA 首先我们要明确一个概念CRA(Chief Ray Angle):CRA是Chief Ray Angle的缩写,意思是主光角.从镜头的传感器一侧,可 ...

  5. ISP pipeline之lens shading correction

    lens shading基本概念 Lens Shading,一般称为镜头阴影或者镜头暗影,作为通常在成像中肉眼可见的现象一般也有两种,即图像中心和四周的亮度变化和图像中出现的偏色现象,如图所示,通常称 ...

  6. Lens Shading成因及相关

    一个监控摄像头光学处理包含以下几个部分:镜头(Lens)(定变焦镜头).红外截止滤波片(IR-cut filter)(红外截止滤光片和蓝玻璃滤光片为主).图像传感器(Image Sensor)和印制电 ...

  7. Lens shading

    1.shading的产生 用在镜头上,特指画面四角由于入射光线不足形成的暗角,Lens Shading,同时,由于不同色彩的光折射率差别,还有color shading.因此在数码时代又有了镜头校正( ...

  8. (Lens Shading Correction)镜头阴影矫正,基于面阵工业相机GigE

    LSC (Lens Shading Correction)镜头阴影矫正 现象: 相机成像会出现中心亮,四周暗的现象:益或在RGB图中出现色彩不均匀的现象,这会为系统引入大量的噪声. 原因分析:这种现象 ...

  9. LSC(Lens Shading Correction)——镜头阴影矫正

    产生原因 由于镜头原因导致光线丢失 注意红线:此时颜色就分离了 校正方法: 网格化或者半径化方法,用一张灰度图来储存增益,各个像素点×增益恢复到最终的情况,网格化的方法通过划分网格节约存储空间 代码: ...

最新文章

  1. abbyy在使用时提示更改分辨率如何处理
  2. Swin Transformer升级版来了!30亿参数,刷榜多项视觉任务
  3. 实验讲解OSPF网络类型
  4. 禁用Zuul的过滤器
  5. 泛化、实现、依赖和关联的区别
  6. 进程和线程的本质和区别
  7. 民国大学教授收入有多高?
  8. 什么样才能叫精通java_Java学到什么程度才能叫精通?
  9. matlab simulink_简单五步实现 MATLAB/Simulink 锂电池建模
  10. java object转map_Java 面试题:百度前 200 页都在这里
  11. ELK收集日志到mysql
  12. js中的逻辑与()和逻辑或(||)(转载)
  13. 哪些管理类的书籍值得推荐?
  14. SMART原则是什么
  15. 20款最好的jQuery文件上传插件
  16. <C语言程序实例>C语言实现菱形输出
  17. 多步攻击场景构建和攻击链提取方法
  18. 2020年哈尔滨工业大学C语言程序设计精髓 第四周练兵编程题
  19. 安装Windows提示无法在驱动器0分区上安装windows解决方法
  20. VM12 启动虚拟机问题汇总

热门文章

  1. 判断ssh远程命令是否执行结束
  2. [OpenGL] 视图矩阵(View)矩阵与glm::lookAt函数源码解析
  3. The Framework For Love
  4. 微信公众号推送天气教程,自动定时推送【Java版】开发者和小白详细教程
  5. 微服务是银弹还是焦油坑?
  6. 深度学习双显卡配置_更新深度学习装备:双(1080Ti)显卡装机实录
  7. iphone手机铃声制作(iTunes)
  8. INK1003注意事项
  9. 网站建设|网站导航设计超强方法总结
  10. python量化投资实训班_Python量化投资实训营