Lens Shading成因及相关
一个监控摄像头光学处理包含以下几个部分:镜头(Lens)(定变焦镜头)、红外截止滤波片(IR-cut filter)(红外截止滤光片和蓝玻璃滤光片为主)、图像传感器(Image Sensor)和印制电路板(PCB)。其中,镜头、红外截止滤波片)和图像传感器是组成摄像头的核心部件,也是引起Lens Shading的主要部分。
图 分解示意图
关于Lens Shading,一直未找到明确且合理的解释。不论是维基百科,还是百度百科,均为对该词条进行解释。但在一些博客和文献中,有人将Lens Shading称为暗角,也有将Lens Shading视为镜头阴影/镜头暗影,此外,还有称Lens Shading为亮度均匀性的。称谓很多,但没有固定且统一的说法。在文中,本人更偏向于镜头暗影的说法,即可用“暗”表示图像亮度变化引起的暗角,也能用“影”表示图像中出现的偏色现象。
一般来说,物体到lens中心的距离越远,图像越暗,呈圆形中性对称的方式递减。在算法中很容易想到用曲线映射的方式来补偿亮度
Lens Shading
Lens Shading可细分为Luma Shading(亮度均匀性)和Color Shading(色彩均匀性)
Luma Shading(亮度均匀性)
Luma Shading就是我们常说的暗角。图像中心区域较亮,图像边角偏暗。
Color Shading(色彩均匀性)
Color Shading则表现在图像中心区域与四周颜色不一致,体现出来一般为中心或者四周偏色。
Luma Shading的成因
1.由摄像头本身的机械结构导致产生。
由于摄像头各模块在制作和组装的过程中,均存在一定的工艺误差,从而影响物体光线在摄像头内的传播。
2.由镜头(Lens)的光学特性引起。
对于整个镜头,可将其视为一个凸透镜。由于凸透镜中心的聚光能力远大于其边缘,从而导致Sensor中心的光线强度大于四周。此种现象也称之为边缘光照度衰减。对于一个没有畸变的摄像头,图像四周的光照度衰减遵循一定的衰减规律。
Color Shading的成因
Color Shading的成因则要相对复杂的多。在分析其成因之前,需要对IR-Cut filter和Image Sensor有所了解。
红外截止滤波片(IR-cut filter)
红外截止滤波片位于镜头和图像传感器之间,为了消除这些投射到Sensor上不必要的光线,防止Sensor产生伪色/波纹,从而提高色彩还原性。
Sensor可以感知人眼感知不到的红外光和紫外光,因此需要使用另外的滤波片进行滤除,否则会导致红绿蓝像素点的亮度值与人眼观察到的亮度值存在较大的差异。
红外截止滤波片类型
红外截止滤波片主要分为干涉型、吸收型。
反红外滤光片为干涉型红外截止滤波片,即反射红外光。在可见光区域有较高的透过率,存在较低反射率,而在红外区域正好相反,反射率较高,透过率很低。但成角度拍摄照片时,红外光在IR膜上会有较大反射,经过多次反射后,被Sensor接收从而改变图像R通道的值,引起图像偏色问题。
蓝玻璃则是吸收型红外截止滤波片,对红外光有很强的吸收作用,不存在很大的反射,能在一定程度上减轻渐晕和色差问题。
图像传感器Image Sensor
在红外截止滤波片之后便是图像传感器,主要由相间的RGB像素感光块构成。为了使感光面积不受感光片的开口面积影响,一般会在其上方增加一层微透镜(Micro Lens),用于收集光线,提高感光度。但微透镜的主光线角CRA(Chief ray angle)值与镜头的CRA值不匹配便会导致严重的shading问题。
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)模块,用于校正镜头暗影
Lens Shading校正前后示意图
在实际使用中,校正后边角Noise略大,需要在边角亮度和Noise之间取一个平衡。在低光照条件下,通常会让四周的亮度达到中心亮度的70%~90%就可以了。环境色温的差异,也会导致计算出LSC gain curve有所差异,在调校IQ的过程中,会计算多种色温的LSC gain curve,然后在实际使用过程中动态的调整curve形状。
Imatest测试
进行白平衡处理后,便可用Imatest软件对其亮度均匀性和色彩均匀性进行分析,通过Shading的测试原理,确定图像校正的好坏。
亮度均匀性测试原理
在整幅图像中的四角和中央分别取相同大小的区域,然后算出这些区域的亮度值,以中间区域为基准,用四角区域的亮度值和中间区域的亮度值相比,得到一个比值,这个比值越大表示边角比较亮,即Shading值 =(四角最暗处的亮度值Y/中心最亮处的亮度值)×100%,考虑到边角信噪比,选择合适的矫正参数。
色彩均匀性测试原理
把整幅图像等分成若干区域,然后算出这些中R/B、R/G或G/B的值,以中间区域为基准,用其他区域的比值和中间区域的比值相比,得到一个接近于1的数值,这些最终得到的比值越接近于1说明Color Shading越好。
shading调试
镜头阴影校正(Lens Shading Correction)是为了解决由于lens的光学特性,由于镜头对于光学折射不均匀导致的镜头周围出现阴影的情况。
LSC的tuning一定要把校正图采集好,一般情况下raw图的G通道中心亮度在8bit的70%~80%之间,一般情况下需要在不同色温灯箱TL84、D65、A光源下进行校正。
注意采集的raw图不能有filcker。
LSC强度一般是可调的,因为图像边角的增益相比中心区域会很大,因此在高增益下,可以降低边角的LSC强度,避免高增益下图像边角噪声比较严重。
参考文章:https://blog.csdn.net/yxyx13120297/article/details/85206426
###我的个人博客主页,欢迎访问
###我的CSDN主页,欢迎访问
###我的GitHub主页,欢迎访问
Lens Shading成因及相关的更多相关文章
- ISP算法:深入聊聊lens shading
一.简介 关于什么是成像中的lens shading这里直接引用一句英文的definition:"The term shading describes the light fall-off ...
- Camera测试之Color & Lens shading Test
测试目的:测试摄像头成像的均匀性 测试主要设备:均匀光源(DNP灯箱),色温照度计 测试环境:将灯箱光源调至600±100lux 测试注意事项:保证均匀的光源 测试原理: 造成摄像头成像不均匀的原因有 ...
- 什么是镜头shading
shading分为两种: Lens Shading:由于Lens的光学特性,Sensor影像区的边缘区域接收的光强比中心小,所造成的中心和四角亮度不一致的现象. color shading:由于LEN ...
- (转)CMOS Sensor的调试经验分享
CMOS Sensor的调试经验分享 我这里要介绍的就是CMOS摄像头的一些调试经验. 首先,要认识CMOS摄像头的结构.我们通常拿到的是集成封装好的模组,一般由三个部分组成:镜头.感应器和图像信号处 ...
- qualcomm platform camera porting
转载自http://www.cnblogs.com/thjfk/p/4086001.html camera基本代码架构 Camera原理:外部光线穿过lens后,经过color filter滤波后照射 ...
- camera理论基础和工作原理
写在前面的话,本文是因为工作中需要编写摄像头程序,因为之前没有做过这类产品,所以网上搜索的资料,先整理如下,主要参考文章如下,如果有侵权,请联系我:另外,转载请注明出处.本文不一定全部正确,如果发现错 ...
- CMOS Sensor的调试经验分享
转自:http://bbs.52rd.com/forum.php?mod=viewthread&tid=276351 CMOS Sensor的调试经验分享 我这里要介绍的就是CMOS摄像头的一 ...
- MTK6577+Android之Camera驱动
MTK6577+Android之Camera驱动 <MTK安卓平台的Camera效果在线调试> 1. Camera拍照相关概念 1.1 ISP isp--(Image Signa ...
- CMOS Sensor的调试经验分享【转】
转自:https://blog.csdn.net/yapingmcu/article/details/37817727 转自:http://bbs.52rd.com/forum.php?mod=vie ...
- camera理论基础和工作原理【转】
转自:http://www.cnblogs.com/fjutacm/p/220631977df995512d136e4dbd411951.html 写在前面的话,本文是因为工作中需要编写摄像头程序,因 ...
随机推荐
- 基于RL(Q-Learning)的迷宫寻路算法
强化学习是一种机器学习方法,旨在通过智能体在与环境交互的过程中不断优化其行动策略来实现特定目标.与其他机器学习方法不同,强化学习涉及到智能体对环境的观测.选择行动并接收奖励或惩罚.因此,强化学习适用于 ...
- Sentinel为什么这么强,我扒了扒背后的实现原理
大家好,我是三友~~ 最近我在整理代码仓库的时候突然发现了被尘封了接近两年之久的Sentinel源码库 两年前我出于好奇心扒了一下Sentinel的源码,但是由于Sentinel本身源码并不复杂,在简 ...
- vue中获取所有路由
在router实例上有options属性:
- js给元素设置样式
一.style 利用 "[元素].style.[CSS属性名] = [属性值]" 的方法 1 var Box = document.getElementById('box') 2 ...
- xlsx纯前端导出表格,完善边框等样式
仅用xlsx是无法实现文字样式及表格边框的style的,因此配合使用xlsx-style 以下源码直接复制过去用 // 源码什么的都不需要改动 import * as XLSXStyle from ' ...
- C# 当前进程是否有控制台窗口
WPF应用程序,在VS的项目属性中,可以设置输出类型: 那我们在代码中,如何判断应用的类型呢.有没有控制台?是否Windows应用程序还是控制台应用程序? Kernel32下函数GetConsoleW ...
- SpringCloud之Nacos学习使用
文章目录 Nacos 注册中心 核心功能 配置启动 集群搭建 Nacos是SpringCloudAilibaba提供的开源组件,有了Nacos我们就可以代替Eureka和SpringCloudConf ...
- 2021-12-01:给定一个正数数组arr,代表每个人的体重。给定一个正数limit代表船的载重,所有船都是同样的载重量。 每个人的体重都一定不大于船的载重。 要求: 1, 可以1个人单独一搜船;
2021-12-01:给定一个正数数组arr,代表每个人的体重.给定一个正数limit代表船的载重,所有船都是同样的载重量. 每个人的体重都一定不大于船的载重. 要求: 1, 可以1个人单独一搜船: ...
- SQL Server2019 新增字段并设置默认值
命令: ALTER TABLE 表名 add 列名 数据类型 default 默认值 not null 例如: ALTER TABLE LJEL005H add el_req int default ...
- @GrpcServise 注解的作用和使用
转载请注明出处: 1. @GrpcServise 的作用和优势 在没有使用 @GrpcServise 注解编写服务端时,我们通常需要自定义 Server 以及端口,包括 start,stop ,注册s ...