2. 时域滤波基础:帧差法与背景减除中的噪声敏感性分析

时域滤波是运动检测中最直观的噪声抑制手段。帧差法(Frame Difference)与背景减除法(Background Subtraction)均依赖像素在时间轴上的变化,但两者对噪声的响应截然不同。本章深入剖析两种方法的噪声传播机制,并给出敏感性对比。

核心观点: 帧差法对高频噪声(如椒盐噪声)敏感,而背景减除法对光照突变与背景扰动(如树叶晃动)产生的“伪噪声”更为脆弱。理解噪声类型是选择预处理滤波器的前提。

2.1 帧差法中的噪声敏感性

帧差法通过计算连续两帧的像素差来检测运动。设 \(I_t\) 与 \(I_{t-1}\) 为相邻帧,差分图像 \(D_t = |I_t - I_{t-1}|\)。若存在独立同分布的高斯噪声 \(\mathcal{N}(0, \sigma^2)\),则差分图像的噪声方差变为 \(2\sigma^2\),信噪比下降约3dB。阈值分割时,噪声容易造成大量虚警。

帧差法噪声放大示意 帧 t-1 μ=128, σ=10 帧 t μ=130, σ=10 差分 σ_diff ≈ 14.1 噪声方差加倍

典型噪声影响

噪声类型帧差法响应虚警概率
高斯噪声方差加倍,阈值需提高中
椒盐噪声孤立噪点产生大量假运动高
量化噪声平坦区域出现伪差分低~中

2.2 背景减除法的噪声敏感性

背景减除法维护一个背景模型 \(B(x,y)\),当前帧 \(I_t\) 减去背景得到前景。噪声不仅来自传感器,还来自背景模型的不确定性(如光照渐变、背景抖动)。背景减除对低频噪声(如阴影、全局光照变化)敏感,容易将缓慢变化归类为前景。

背景减除噪声源分解 ■ 传感器噪声 ■ 背景扰动 ■ 光照变化 前景掩码 含噪声虚警

2.3 敏感性对比与应对策略

下表从噪声类型、空间一致性、时间一致性三个维度对比两种方法的脆弱性。

维度帧差法背景减除法
高频噪声(椒盐)高度敏感中等敏感(背景模型可平滑)
低频噪声(光照渐变)不敏感(帧间变化小)高度敏感(易误判为前景)
背景周期性抖动(如树叶)中等敏感非常敏感(需额外处理)
空间滤波预处理强烈建议中值/高斯滤波建议形态学开运算

代码示例:帧差法 + 高斯预滤波

import cv2
import numpy as np

def frame_diff_with_filter(prev, curr, threshold=30):
    # 高斯平滑降低噪声敏感性
    prev_blur = cv2.GaussianBlur(prev, (5,5), 1.2)
    curr_blur = cv2.GaussianBlur(curr, (5,5), 1.2)
    diff = cv2.absdiff(prev_blur, curr_blur)
    _, mask = cv2.threshold(diff, threshold, 255, cv2.THRESH_BINARY)
    return mask

2.4 噪声抑制的时域滤波策略

针对帧差法与背景减除的噪声弱点,常用以下时域滤波技巧:

  • 帧间中值滤波:对连续三帧取中值,消除孤立噪点。
  • 自适应阈值:根据局部噪声方差动态调整分割阈值。
  • 背景更新率调节:在背景减除中,对噪声较大的区域降低学习率。
  • 运动一致性检查:结合空间邻域投票,抑制单像素噪声。
时域滤波消除噪声流程 输入帧 时域滤波 中值/均值 帧差/背景减 降低虚警 掩码

在后续章节中,我们将深入均值滤波、高斯滤波、中值滤波等具体算子,并评估它们对帧差法与背景减除的改善效果。