
122、洞察驱动的实战标题——Flicker Detection的"频闪战争"——50Hz/60Hz/日光灯/PWM调光LED的频闪检测与补偿,从硬件同步到软件抗频闪去年秋天,我在某安防客户现场被一个诡异现象缠了整整三天。IPC模组在白天一切正常,一到傍晚走廊灯亮起,画面就开始出现明暗交替的横条纹,像老式CRT电视的刷新滚动。客户工程部主管指着屏幕说:“你们这传感器是不是坏了?”我盯着那条纹的间距,心里已经骂了娘——这哪是传感器坏了,这是频闪,而且频率极低,低到让人误判成帧率问题。先别急着谈算法,我们得把这场“战争”的战场画清楚。你手里的CMOS传感器,曝光时间本质上是快门打开的时间窗口。如果这个窗口内,环境光的能量不是恒定的,而是以某个频率在波动,那么传感器积分出来的电荷量就会带上这个波动痕迹。50Hz交流电驱动的日光灯,光通量以100Hz的频率脉动(全波整流后是两倍频),60Hz电网则是120Hz。而PWM调光的LED更狡猾,它可能以几千赫兹甚至更高频率开关,但占空比变化时,等效光强里会混入低频包络。当这个包络频率与传感器的行读出频率、帧率、曝光时间三者之间产生差拍,画面上的横条纹就诞生了。我见过太多工程师一上来就堆算法,什么FFT分析、小波变换、深度学习去条纹,全上了,结果现场一换灯管就翻车。根因不在算法,在物理。你得先搞清楚你的传感器在什么工作模式下被“打”了。全局快门传感器理论上对频闪免疫,因为所有像素同时曝光,光强波动被平均掉了。但卷帘快门是重灾区——每一行曝光的起始时刻不同,如果光强在行间变化,行与行之间的亮度差异就形成了条纹。更隐蔽的是,有些传感器支持“多帧合成HDR”,不同帧的曝光时间不同,频闪会