Skip to content

10 · 时序异常:抖动与冻结

单帧算法无法区分「画面内容静止」与「信号卡住」。时序分析利用相邻帧关系,检测 抖动(Shake)冻结(Freeze) 两类典型异常。

1. 预处理共性

为降低算力,常将帧宽缩放到 (保持宽高比),在灰度图上运算。

维护帧缓存: 或长度 的滑动窗口

2. 抖动检测:Farneback 光流

2.1 现象

支架松动、风吹导致整幅画面沿近似一致方向周期性平移,区别于局部运动目标。

2.2 Farneback 稠密光流

Farnebäck 用多项式展开近似邻域,估计像素位移场

光流幅值:

2.3 分块统计

分块,每块平均幅值 。全局运动均值:

幅值方差(运动是否一致):

方向一致性:设块主方向角 ,方向偏差:

2.4 抖动判定

单帧满足(启发式):

滑动窗口内满足条件的帧比例:

光流矢量场示意(全局平移)

示意图标题为英文标注;抖动 / 冻结需多帧对比,暂无单帧 fixture。

3. 冻结检测:帧差法

3.1 现象

当前帧与上一帧几乎完全相同——播放器停帧、编码器重复帧、链路卡住。

3.2 帧差

二值化(阈值 ):

变化像素比例

静止像素比例(冻结分数):

表示几乎全帧静止。

3.3 多帧确认

典型

误报:监控对准静态场景(空仓库、墙面)也会 。应对:仅对「应有运动」的通道启用,或结合场景运动基线。

4. 对比

抖动冻结
帧间关系全局有位移无变化
核心算子光流帧差
典型误报大车经过整体晃动静态场景
采样建议隔帧(如每 5 帧 1 次)连续帧

5. 流程总览

6. OpenCV 接口

cpp
// 光流
calcOpticalFlowFarneback(prevGray, currGray, flow, ...);

// 帧差
absdiff(prevGray, currGray, diff);
threshold(diff, binary, tau_f, 255, THRESH_BINARY);

7. 参考文献

  1. Farnebäck G. Two-frame motion estimation based on polynomial expansion. SCIA, 2003.
  2. Barron J L, Fleet D J, Beauchemin S S, Burkitt T A. Performance of optical flow techniques. IJCV, 1994, 12(1): 43–77.
  3. Piccardi M. Background subtraction techniques: a review. IEEE SMC, 2004. — 帧差与背景建模。
  4. Horn B K P, Schunck B G. Determining optical flow. Artificial Intelligence, 1981, 17(1-3): 185–203.

← 09 遮挡 · 专题首页

© 2026 老周有AI. All rights reserved.