实验数据:
UCSD Anomaly Detection Dataset
该数据集由加州大学圣迭戈分校提供,由一个安装在高处、俯瞰人行道的固定摄像机获取的监控视频。视频中人群密度由稀疏到密集不等。其中正常定义:视频中仅有行人;异常定义为:视频中出现自行车/汽车/滑板车/轮椅等异常运动模式。数据集中提供了两个场景,分别为UCSDped1和UCSDped2,每个场景下又分为Train和Test,下面又会分为N个片段,每个片段都会有200帧图像。本实验用到“UCSDped1/Train/Train007”这一片段,下面为该片段的视频演示:
实验代码:
环境:Win10 | Python 3.7.3 | OpenCV 4.1.0
步骤一:前景提取
利用高斯混合模型分离图像帧的前景和背景
# 创建混合高斯模型
fgbg = cv2.createBackgroundSubtractorMOG2()
for frame in frames:
frame_img = cv2.imread(frame_path + frame, 1)
# 利用混合高斯模型提取前景
fgmask = fgbg.apply(frame_img)
提取前景后的视频演示: