用于实现行人轨迹检测,共提供了两种方法:LK光流法和背景减除法。
环境
- VS2017
- python3.6
- opencv3.4.1
光流是空间运动物体在观察成像平面上的像素运动的瞬时速度,利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息。
主要步骤:
- 选取第一帧图片进行角点检测;
- 计算光流;
- 选取运动的角点绘制其轨迹;
背景减除(Background Subtraction)是许多基于计算机视觉的任务中的主要预处理步骤。如果可以获得完整的背景图片,既可以通过帧差法来计算像素插值,从而获得前景对象。
在此使用MOG2算法,即高斯混合模型分离改进算法,该算法为每个像素选择适当数量的高斯分布,可以更好地适应不同场景的照明变化。
每一帧图片的主要处理步骤:
- 基于MOG2算法进行背景减除,得到原始帧的前景图片;
- 对前景图片进行二值化阈值处理,以去除前景图片中的阴影;
- 进行中值滤波,以滤除噪点;
- 提取前景图片中的目标轮廓,并计算其面积,选取大小适合的目标轮廓,绘制其线条轨迹。