自动曝光Flicker现象分析

2024-08-07 11:23:52 浏览数 (3)

1、sensor Flicker现象

相机输出画面会出现频闪,尤其是对着日光灯管场景,画面中有水波纹渐变或者阴影纹路,如下图所示。

所展示的现象为:

1、同一帧的不同行的亮度各不相同,存在亮暗变化的条纹;

2、不同帧的相同行的亮度可能不相同,出现水波纹一样的纹路跳变。

二、 帧曝光分析

2.1 交流电变化规律

交流电其实是一种正弦波,其频率有两种:50HZ和60HZ,中国、泰国、印度、大部分欧洲国家等地采用50HZ,美国、加拿大、墨西哥等地采用60HZ。

下面以50HZ为例进行解释,交流电以1/50s,即20ms的周期进行变化,其变化规律如图所示:

而对于能量来说,并没有正负之分,因此能量的周期是1/100s,即10ms。

因此,普通的以交流电为电源的白炽灯的亮度实际上在一直在以10ms为周期随着交流电变化而发生变化,只不过人眼感知不到画面亮度的变化罢了。

2.2 对同一帧内的不同行进行分析

曝光时间为10ms时

如图所示,假如第M行和第N行分别在tm​和tn​时刻开始曝光,曝光时间为都10ms,图中阴影部分的面积就表示该行的亮度

我们知道第M行的积分面积与第N行的积分面积是相同的,因为积分时间刚好是周期的整数倍,此时不同行的亮度是相同的,不会产生banding现象。

曝光时间为8ms时

如图所示,假如第M行和第N行分别在tm​和tn​时刻开始曝光,曝光时间为都8ms,图中阴影部分的面积就表示该行的亮度

我们可以知道看出来第M行的积分面积(跨越波峰)大于第N行的积分面积(跨越波谷),因此这两行的亮度就会有差异,在当前帧中就会出现不同行亮度不同的水波纹现象。

2.3 对不同帧的同一行进行分析

假设,第M帧的第N行在tm​时刻开始曝光,第M 1帧的第N行会在tm 1​开始曝光,如果此时的帧率为30FPS,每帧时间为为1/30s,即33ms。我们可以知道:

tm 1​=tm​ 33ms


当曝光时间为10ms时

如图所示,此时我们会发现,这两行的亮度是一样的,因此不同帧的亮度也是相同的,即画面亮度不会出现闪烁跳变;


当曝光时间为8ms时

如图所示,第M帧的第N行的积分面积要大于第M 1帧的第N行的积分面积(经过谷底),此时不同帧的相同行亮度也会发生表现,加上上面的分析,我们可以得知,在30FPS情况下,以8ms进行曝光时不仅会出现水波纹,而且水波纹还会滚动,出现上面视频中的表现。

但是,如果此时以25FPS的帧率进行分析,每帧为1/25s,即40ms时,情况会变得不一样,此时:

tm 1​=tm​ 40ms

如图所示,由于40ms为周期10ms的整数倍,因此这两行的起始时刻相位是相同的,所以两行的积分面积是相同的,因此此时不会出现画面闪烁。

三、sensor曝光模式

如果成像系统的曝光方式是“​卷帘式曝光​”(Rolling Shutter),由于每一行曝光时间不同,获得的曝光量也可能不同;那么在不同的感光面接收到的光能量不一样,从而产生了图像上的频闪条纹。

电子卷帘快门通过通电控制传感器,使其不同部分在不同时间下逐行进行曝光,直到所有的像素点被曝光。

但是全局曝光也不能幸免于时间调制的照明效果,它表现为一种曝光的“呼吸”,其中光脉冲可能与传感器的整合期同步(较亮),或与传感器的读出期同步(较暗)。具体现象是在视频中的帧之间会出现明暗闪烁的现象,同时这种闪烁的灯光现象也会混淆HDR多重曝光的图像融合。

3.1 全局曝光(Global Shutter)

全局曝光特点:

> 1、像素同时曝光; > > 2、适合拍摄运动物体,没有图像畸变 > > 3、相同曝光时间,相比卷帘曝光会增加噪声读出

考虑到光源频闪的周期性,在一个周期内,光源亮度的累积值,应该是大体一致的。所以,如果控制曝光的时间是频闪周期的整倍数,那么每一帧图像的亮度就大体是一致的了,这样就可以有效地抑制呼吸闪对图像亮度的影响。

曝光时间= N ×(1/(工频×2)),N是非0正整数。比如工频是50HZ,N取2时,那么曝光时间 = 1/50,对应视频帧率就是50fps,N取4时,对应帧率是25fps。

3.2 卷帘曝光(Rolling Shutter)

卷帘曝光特点:

> 1、像素逐行曝光; > > 2、适合拍摄静态、低俗运动物体。拍摄动态物体容易图像畸变 > > 3、帧率调节、噪声控制相对灵活

Rolling Shutter的曝光方式是逐行进行的,同一行Pixel的曝光时间是一样的,每行Pixel的曝光起始和结束的时间都是一样的。不同行之间,虽然每行的曝光时长是一样的,但时域上每行曝光的开始点是不同的,所以不同行之间pixel积聚的能量不一定相同。

> 以50HZ的交流电频率来说,解决频闪有两种办法: > > 1、控制Sensor每行的曝光时间为10ms的整数倍 > > 2、每帧图片的时间是10ms的整数倍

四、小结

这里可以给出结论:

1、当曝光时间为光源能量周期的整数倍时,不会出现banding现象;

2、当曝光时间不为光源能量周期的整数倍时,一定会出现不同行之间的亮度差异,即水波纹一样现象;但是水波纹会不会上下滚动还要看帧率;

3、当每帧时间(1/fps)为光源能量周期的整数倍时,不同帧之间的相同行不会出现亮度变化,即哪怕有水波纹也不会滚动,反之水波纹会上下滚动;

五、LED灯情况分析

LED并不是是随着交流电的频率变化的而是自身控制的,LED灯的频率并不固定,一般来说在90HZ~200HZ,不同的LED灯有不同的频率,如图所示灯是90HZ,占空比为20%的LED亮暗示意图,当电平为高时LED灯亮起,当电平为低时,LED灯熄灭,因此这里我们也可以看到为什么LED会节能呢?因为它大部分时间都不亮。

那对于图像传感器来说,LED与普通白炽灯有什么区别呢?

1、白炽灯其实是一直亮着的,但是LED灯的大部分时间是灭的,因此采集图像时有可能会采集到LED灯灭掉的时刻,比如ADAS相机如果采集到的红绿灯是灭的,那么ADAS算法也无法判断当前应该是停车还是直接走;

2、交流电的频率是固定的,要么50HZ,要么60HZ;但是LED灯的频率没有具体标准,比如频率很低的警车上鸣笛的那个红蓝信号灯频率可以低到5HZ,而高频的LED灯可以达到200HZ,并没有一个固定的频率;

不过,分析方式是一样的每一行的亮度取决于在该行曝光时间内的外界亮度的积分。这里以90HZ,占空比为20%的LED灯为例进行分析,因为在车载领域,对LED banding有要求的也是大于90HZ的LED灯下无明显的频闪和水波纹。

参考文献:

今日分享丨频闪Flicker_时间_变化_Shutter

Camera驱动 | Sensor Flicker产生原因和解决方法-腾讯云开发者社区-腾讯云

0 人点赞