自动驾驶应用中的LED flicker问题

近年来驾驶辅助系统和自动驾驶是研究和产业界的热点问题。日本也在2016年通过立法允许电子图像系统替代传统后视镜。

在目前交通系统中,LED照明因为效率高、稳定性好对于汽车和道路标志带来了诸多改善,但同时也为基于视觉的驾驶辅助系统(如交通标志辨识、自动煞车以及夜视功能)带来了种种挑战。

LED 交通信号灯以及LED车灯的flicker消除,是当前ADAS以及自动驾驶领域对图像传感器一个重要需求。这一篇文章我们就谈一谈LED flicker。

LED flicker是指因为LED 闪烁在图像传感器上产生伪影的现象,但是从人眼的感知LED却是常亮的。

此图片的alt属性为空;文件名为1-1-300x86-1.gif

LED照明是采用脉冲调制驱动PWM(Pulse Width Modulation),简单来说LED并不是常亮,而是以一定频率在闪烁。但由于视觉的flicker fusion threshold的原因,频率高于90Hz人眼一般就不会察觉到闪烁。但是对于camera系统来说,户外通常会设置较短曝光时间(尤其是HDR场景),这样就有可能拍摄到的LED亮度明暗变化的情况。

举个例子。大街上的红绿灯,此时红灯对人眼来说是亮的,需要停下来了。但是驾驶辅助系统接收的信号却未必如此。如下图所示,在第N帧的时候,LED on和sensor曝光时间刚好同步,所以生成的图像红灯是亮的。在N+1帧的时候,由于sensor曝光时间和LED美颜同步,所以生成的图像红灯是黑的。但是对咱们人眼来说这个红灯是常亮的。

当sensor的曝光时间小于LED光源调制信号‘空’时长,会出现帧和帧之间灯光时亮时灭的现象。

此图片的alt属性为空;文件名为2-2-1.jpg

此图片的alt属性为空;文件名为3-3.jpg

再举个例子。帧和帧之间灯光虽然没有关/开,但是灯的强度会在帧之间变化。如下图所示,N帧的曝光刚好抓到两个LED亮的周期,所以灯光比较亮。下一帧只抓到一个,所以暗。

当sensor的曝光时间大于LED光源调制信号‘空’时长,会出现帧和帧之间灯光时亮时暗的现象。

此图片的alt属性为空;文件名为4-1.jpg

再举个例子。当我们用rolling shutter sensor的时候,会出现banding现象。Rolling shutter是逐行曝光,再遇到LED频闪,就可能出现LED灯banding的情况。

此图片的alt属性为空;文件名为5-1.jpg

另外现在sensor常用的多帧HDR模式,由于短曝光的时间限制,也会引入一些LED flicker的现象,如下图,短曝光的部分就会出现flicker的情况。

此图片的alt属性为空;文件名为6-1.jpg

LED flicker给自动驾驶带来的挑战相信大家都很容易想到。那么有没有什么好的方法来解决这个问题呢?

从上面公式来看,保持LED 频闪与sensor曝光同步,并且曝光时间配合LED调制信号周期,是解决问题的关键。这是一个理想化的解决方案。现实世界是:世界各地LED规格不一,这就导致了sensor厂和自动驾驶厂商也不能统一去优化。

那有没有其他解决办法呢?答案很遗憾,虽然sensor厂做了一些努力去减小,但是目前这些方法都没有完全根除这个问题。

目前常用的一个方法是,sensor本身实现大动态范围(HDR),这样可以有更大曝光时间裕度,保证曝光时间内尽可能抓到若干个LED on周期。Sony、Onsemi现在都是这个思路。这是Sony IMX390的一个官方宣传。

此图片的alt属性为空;文件名为7-1.jpg

(注: 欧盟已经制定并执行了包含交通信号灯flicker要求的标准EN12966,所以现在的sensor厂商很多都是在基于这一标准在设计flickering mitigation的解决方案)

—–本文转载自微信公众号《大话成像》,知乎专栏《all in camera》

Was this helpful?

3 / 0

http://xzh.i3geek.com
发表回复 0