为什么要有ISP

引言

转自
凡是和图像领域工作的人,都会经常听到ISP(Image Signal Process,图像信号处理),知道ISP对图像质量非常重要。比如华为和小米竞争手机拍照和录像效果,主要的竞争领域就是ISP;做AI(Artificial Intelligence,人工智能)的人也知道,如果ISP不给力,后续的AI处理效果会受到影响。

ISP在图像输入流中的位置如下(图中的成像引擎):
在这里插入图片描述
有时,我们想了解一下ISP里面到底有什么,会拿到一个巨大图,伴随一个名词列表,搞不清重点,搞不清前因后果。
在这里插入图片描述
再请教几个图像处理的教授,他会说,你说的都是工程问题,我现在在研究更深奥的课题,比如三维重建,语义分割,人体运动捕捉等算法。What?我就是为了这些AI算法,遇到了ISP的瓶颈。
在这里插入图片描述
为什么相机的CMOS传感器(Sensor)输出的原始数据(raw data)不能做好一点,不要让ISP做这么复杂?

现在的ISP通常做了哪些工作,每个工作的原因是什么?处理的原理是什么?哪些处理对于图像效果最明显?哪些处理比较成熟?

接下来我们就来回答。

Sensor输出的原始数据和人类预期的图像有巨大差异
需要ISP模块的原因有2个方面,一个是镜头和Sensor的物理缺陷(不完美),第二是拍摄的光线条件多样,镜头和Sensor需要根据环境做适应(就像人眼要通过瞳孔缩放,适应环境明暗一样)。

由于这2个方面原因,如果没有ISP模块,现在无法让我们生成人类预期的图片质量。如下图,是几幅油画,这就是人类期望的调整ISP成像效果的方向。

在这里插入图片描述
梦幻田园│法国画家Jean Marc Janiaczyk油画作品
在这里插入图片描述
跨越阿尔卑斯山圣伯纳隘口的拿破仑│法国画家雅克-路易·大卫 (1801-1805年)
在这里插入图片描述
抱陶女│画家谢楚余油画作品(1997年)

再来一张Sensor输出的Raw Data的效果,可以看到效果很差(注意是正常室内光线下):
在这里插入图片描述

Sensor的问题以及ISP的处理原理

镜头和Sensor的物理缺陷(不完美)导致以下问题,需要ISP模块去补偿。

问题一:Sensor有漏电流。

由于Sensor漏电流存在,刚把镜头放入一个全黑的环境,Sensor输出的原始数据不为0;而我们希望全黑时原始数据为0.

**处理模块名称:**BLC(BlackLevel Correction)------黑电平校正

**处理原理:**我们需要找到一个矫正值,所有像素值都减去这个值,就得到一个矫正成功的结果。一般情况下,sensor的传感器周边,还有一小部分区域是有感光器的,但是没有光透射进来。可以把这部分的传感器的信号作为矫正值,从可感光部分的信号中减去,就可获得校正后信号。

**处理流程:**在运行时调整,不需要依赖人工矫正。

**处理效果:**处理方案成熟。

左边未校验,右边是矫正后的图像
在这里插入图片描述

问题二:通过镜头到达Sensor中间的光多于到达Sensor的边缘的光,即光学系统中的渐晕。

这是由于随着视场角慢慢增大,能够通过照相机镜头的斜光束将慢慢减少。导致Senor捕获的图像中间亮度高,周围边缘亮度低。

**处理模块名称:**LSC(Lens Shade Correction)------镜头阴影校正

**处理原理:**首先检测出图像中间亮度比较均匀的部分,认为这部分不需要矫正,然后以此为中心,计算出周围区域需要补偿的因子(增益)。实际项目中,可以把镜头对准白色物体,检查图像四周是否有暗角。

**处理流程:**在运行前依赖人工矫正。

**处理效果:**处理方案成熟。

下图左边图像是未做镜头阴影校正的,右边图像是做了镜头阴影校正的。
在这里插入图片描述
问题三:Senor上有的像素点的输出有坏点。
由于Sensor是物理器件,有坏点是难以避免的;而且使用时间长了坏点会越来越多。通过在全黑环境下观察输出的彩点和亮点,或在白色物体下观察输出的彩点和黑点,就可以看到无规律的散落在各处的坏点。

**处理模块名称:**BPC(Bad Point Correction)------坏点校正

也叫Defect Pixel Correction(DPC)

处理原理:

第一步:检测坏点。在RGB域上做5x5的评估,如果某个点和周围的点偏离度超过阈值的点为坏点。为了防止误判,还需要更复杂的逻辑,如连续评估N帧。

第二步:纠正坏点。对找到的坏点做中值滤波,替换原来的值即可。

**处理流程:**在运行时调整,不需要依赖人工矫正。

**处理效果:**NA。

问题四:Cmos的Sensor采用了Bayer色彩滤波阵列(Bayer Color Filter Array,CFA)。
按道理sensor输出的是RGB的raw data,每个像素点都感知RGB 3个分量的数字这样最准确。但是这样需要3套感光板,而且RGB的3套数据还需要时间同步和对齐,这样成本高,难度大。

所以,我们通常采用一个叫Bayer色彩滤波阵列(Bayer Color Filter Array,CFA)的滤光板,放在一个感光板。

如下图是一个8x8的分辨率的感光面板,图(a)中彩色部分是Bayer色彩滤波阵列,RGB三种颜色间隔排列。这样一次拍照就产生图(b)的RGB三幅图片,图片中彩色的是有感光数字的,白色空白是没有感光数字的点。我们需要通过Demosaic(颜色插值)的方法,把白色的像素点的值给补上。

图(b)绿色的像素点数目是红色或蓝色的2倍,是因为人员对绿色更敏感。
在这里插入图片描述
处理流程:在运行时调整,不需要依赖人工矫正。

处理效果:较成熟。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值