ABOUT RELY-MEASURE
您的当前位置:主页 > 使用说明 >

用相机定量检测灯光的频闪

发布时间:2020-06-27 17:34 作者:沙龙sa36

  很多人都知道用手机可以粗略地检测频闪。但频闪到底有多严重?手机检测不到的是否真的就没有频闪呢?本文将用相机做出定量的分析。

  最近买了个小米Yeelight吸顶灯,用来替换家里坏掉的灯。用手机给几个吸顶灯拍了下照,本想看看光源的均匀程度。

  图:手机拍摄的光源(左上:松下三基色荧光灯;右上:松下LED;左下:松下未来光;右下:小米Yeelight)

  拍照的时候发现有的灯是有闪烁的。于是想系统地测量一下它们的频闪。正好手头有逐行扫描的相机,可以干这事。

  市电的波形是正弦波,而其功率可以简化为正弦波的平方。可以看到频率是2倍关系。

  而对于其它灯具,可能存在交直流变换,恒流驱动,PWM调光,不管怎样,只要其中存在一定的低频交流成份,就会有频闪。

  对于100Hz的频闪,人的肉眼一般是感觉不到的。假设我们用一个每秒能拍1000张照片的相机,固定曝光量(光圈/快门/ISO),对着灯光下白纸拍照,这些照片的明暗程度会呈现出周期性的变化。我们可以通过这些照片分析出亮度随时间的变化。

  然而我并没有这么快的相机。但我有一个逐行扫描的相机,它可以10ms“拍”2000行(其实只是一张照片),我们分析每行的亮度变化,可以干同样的事。

  逐行扫描的相机(图像传感器CCD或CMOS)其实是相对低端的,有时候也叫作卷帘快门(它的反面是全局快门)。其实它们都是电子开关。卷帘快门可类比于卷帘式的窗帘。下面是原理示意图。

  在卷帘快门模式下,每行的曝光有个时间差,边曝光,边读出数据(但并不是严格顺序的,曝光的时间是可以重叠的)。

  “每行的时间差”对这个测量很重要。我用的这个相机,这个参数是35us。这就是说,按行采样的采样率是1/35us,即28.57KHz。这个值比每秒1000张高多了。

  这种测量方法有一个重要的前提:在同一时刻下,场景中的每一行亮度是相等的。否则,如果拍摄出来的照片每行亮度不同,这到底是场景中亮度本来就不同,还是光源亮度的随时间波动所致呢?简言之,想测时间上的波动,就不要有空间上的波动。

  对了达到这个目的,我们需要让光源严格与白纸垂直,然后,相机也要与白纸垂直。但这比较难操作。于是我使用了一种邪门的办法:让相机直接对着光源,但不用镜头。这样“底片”上不会对光源的形状成像,而只是一团均匀的白光(类似于镜头未对上焦时的虚化)。

  另外,曝光时间越短越好。试想,如果对于100Hz的光源,使用10ms的曝光时间,每一行的曝光时间都是交流电的一个完整周期,它们的曝光量是相等的,将观察不到频闪。

  测量的原始数据就是一张张的照片。有些照片可以明显地看到滚动的条纹,有些则不明显。

  70us和5ms曝光的白炽灯,条纹明显;而10ms曝光的白炽灯则看不到条纹,因为正好是一个周期;11ms曝光的白炽灯有条纹但不那么明显,因为相当于1个周期曝光的底色上再叠加0.1个周期的波动。

  要得到量化的结果,需要对照片进行分析。在ImageJ里写几行脚本,很容易得到每行的平均亮度。

  频闪指数或波动深度定义为亮度的波动幅度比上平均亮度,波动幅度是峰谷差的一半,即:

  除了松下未来光(*),小米Yeelight,护眼台灯外,其它都有频闪。除了手电外,有频闪的市电光源都是100Hz的频闪。松下未来光,其实也可以看到100Hz的波动,但幅度很小。

  图:不同光源的亮度波动曲线(为了便于摆放整齐,不同的光源的曲线在Y轴乘上了不同的系数,这不影响结果)

  护眼台灯的曲线也不一样,散点图放大后是这样,进一步放大,可以看到还是周期波动的曲线,只是频率更高。

  将数据存为PCM,在Audacity里可以看到其频谱。峰值在8379Hz,我们可以认为这是其频闪频率。

  下图是汇总的测量结果。主要指标就两个:频闪频率和波动深度(频闪指数)。峰值和谷值是计算时选取的中间结果;曝光时间是当次测量对应的曝光时间。严格来讲,曝光时间越短结果越精确;曝光时间加长,频闪指数会降低。

  多次测量时,相机和光源的距离会变,曝光时间也可能会变,结果能否保持一致?

  图中A1和A2测得的亮度值不同,但最后波动深度的结果是一样的。A3的曝光时间加长,结果变小一点,这是符合预期的。B1是另一根灯管,结果也比较接近。这基本说明测量是可信的。

  前面的很多图中,可以看到亮度曲线整体上并不是平的。这并不是说明光的亮度有低频波动,而是因为相机和灯光不垂直或有暗角,会导致光在平面上的分布不均匀,每行的平均亮度里会反映出这种波动。这个很难避免,但不影响对频闪频率和波幅的测量。

  所以,在计算波动深度时,我选取了两个相邻的波峰做平均,选两个波峰中间的波谷。参见上图。

  至于光强是否真的有低频波动?首先理论上不大可能有50Hz以下的波动。实验上,我们可以用普通的30帧率的相机,按帧取样做测试,看有没有低频波动。

  前文说过,我使用的相机是行扫描的相机,行采样频率是28.57KHz。根据采样定理,它可以检测出14.28KHz及以下的频闪。

  如果曝光时间是140us,这看起来频率只能到1/140us即7.14KHz。是这样吗?

  实际上,只要曝光时间不是频闪周期的整数倍,即使10.1倍,通过积分后,还是会有波动,因为每次采样有相位差。但这个波动幅度会被拉平,所以测量的准确性会降低。

  前面护眼台灯的测量,频闪频率是8379Hz,而曝光时间140us已经超过了频闪周期(119us),所以测得的频闪指数应该会偏小。

  由于频闪周期、采样周期、曝光时间三者没有任何倍数关系,采样亮度呈现出非常复杂的“类周期”波动。

  由于曝光时间是频闪周期的3.3倍,波动已经平滑了很多。从图中计算出波动深度是0.51%。而前面的测量方法得出的结果是5.3%。

  所以,用低帧率的帧采样,只能看出有无频闪,并不能准确得到频闪频率和波动深度。

  通过逐行扫描的相机可以对光源的频闪进行定量检测,要点在于减少曝光时间,保持感光面的光照均匀。普通的整帧曝光的相机,由于帧率不高,仅能用来检测有无频闪,并不能准确测量出频闪频率和波幅。

  测量的结果令我颇意外:松下的LED和三基色荧光灯连普通白炽灯都比不上。而小米Yeelight的数据非常好。

  当然,这个对比有不公平的地方,松下的灯是旧的(三四年2000小时左右的使用时间),而小米的灯是新的。不过松下未来光也是同样旧的(使用时间甚至更长),但表现还不错。这说明普通产品的质量还是有差距。小米的Yeelight则需要时间的检验,看几年后指标如何。

  一些测量结果仅反映我家的灯具,并不能代表市面上所有的产品。本文主要还是探讨测量方法。


沙龙sa36
Copyright © 2018 沙龙sa36 All Rights Reservrd 版权所有 技术支持:捷搜网络
网站部分图片来自互联网,如有侵权,请及时通知,我们会及时更换!