You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否使用直方图(频率分布)筛选包含运动信息的光流帧?

光流运动帧筛选方案

直方图方案可行性

可以实现,但不要直接使用原始光流帧的像素值直方图,而是针对光流的幅值特征做直方图统计:
静态帧的光流本质是计算噪声,幅值集中在接近0的极小区间,直方图只会在低幅值段出现单一峰值;存在运动对象的帧,光流幅值会出现明显的高幅值分布段,直方图形态差异极大。
你可以通过设定规则判断:如统计光流幅值直方图中,幅值大于预设噪声阈值(可根据你的光流计算精度调整,通常取38)的像素占比超过设定阈值(通常取1%3%)即可判定为运动帧,该方案可以解决你之前遇到的静态帧、运动帧像素值高低不稳定的问题。

其他更高效的可行方案

  • 光流非零幅值占比直接统计:比直方图统计计算量更低,直接统计每帧光流中幅值大于噪声阈值的像素占总像素的比例即可,OpenCV实现代码示例:
import cv2
import numpy as np

# flow为cv2.calcOpticalFlowFarneback输出的光流矩阵
mag, ang = cv2.cartToPolar(flow[...,0], flow[...,1])
# 噪声阈值,根据实际场景调整
mag_thresh = 5
# 运动像素占比阈值
ratio_thresh = 0.02
motion_ratio = np.sum(mag > mag_thresh) / mag.size
is_motion_frame = motion_ratio > ratio_thresh
  • 帧差与光流联合校验:针对存在光照突变的场景,先计算相邻两帧的灰度帧差,仅对帧差大于阈值的区域校验对应位置的光流幅值,可大幅降低光照变化带来的误判。
  • 光流角度一致性校验:针对单一运动对象的场景,可额外统计光流角度的分布集中度,静态帧的光流角度为随机噪声,无明显集中峰值,运动帧的运动方向会呈现集中分布,可进一步过滤误判。

内容的提问来源于stack exchange,提问作者Tariq Hussain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 05:06:03