112、时域降噪与多帧降噪:运动检测、帧对齐与融合权重的工程实现与伪影抑制
112、时域降噪与多帧降噪:运动检测、帧对齐与融合权重的工程实现与伪影抑制一、从一次车载夜视调试的噩梦说起2019年,我在做一款车载环视系统的夜视降噪。客户反馈:车辆静止时画面干净得像白天,但只要一开动,车尾灯拖出一条长长的“鬼影”,路边的行人像被橡皮擦抹过一样——边缘全是虚的。更诡异的是,某些帧里车牌号码居然出现了重影,像是PS里没对齐图层。我花了整整两周,把降噪强度从10调到1,鬼影没了,但噪声又回来了。后来发现,问题出在运动检测的阈值上——我用的全局阈值,而车尾灯区域和路面纹理的运动幅度根本不在一个量级。那次之后我明白了一个道理:时域降噪不是简单的“多帧平均”,而是一场关于“哪些像素该信、哪些该扔”的博弈。二、时域降噪的核心矛盾:信噪比 vs 运动模糊时域降噪的基本原理很简单:对同一场景连续采集N帧,假设噪声是零均值的高斯分布,那么N帧平均后噪声标准差降低到原来的1/√N。但现实世界没有静止的场景——哪怕你把手机放在三脚架上拍夜景,树叶也在晃动,云也在飘。工程上的核心矛盾在于:降噪强度越大,运动拖影越严重。这个矛盾在低照度场景下尤其尖锐——信噪比本来就低,需要更多帧来平均,但运动区域恰恰需要减少帧数来避免模糊。我见过不少方案直接用帧差法做运动检测:当前帧与参考帧的像素差超过阈值就判为运动,然后对运动区域降低融合权重。这个思路没错,但坑在阈值选择上。阈值设低了,静止区域的噪声抖动会被误判为运动,导致降噪失效;阈值设高了,慢速运动物体(比如行