您的位置:首页 > 运维架构

图像处理项目-监控视频的行人追踪

2017-08-16 22:12 288 查看

监控视频的行人追踪

概述

要求:根据提供的监控视频图像,追踪视频中行人并对其运动轨迹做出预判。

实现

视频图像的行人认定为图像的前景区域,识别新人即为分割图像的前景背景,故可使用knn实现分割

利用opencv的BackgroundSubtractorKNN实现的分割效果如下图所示:



对分割出的前景区域,可以计算该区域的HSV颜色模型并计算反投影,再利用camshift( 原理是均值漂移算法 )实现对前景区域即行人的追踪。

同样,利用opencv的cv2.CamShift() 实现效果如下:

图中,红色矩形框即为camshift计算出的目标区域。



最后,预判行人的运动轨迹,这里可以使用卡尔曼滤波来实现。

设定卡尔曼滤波所需测量的维度是2,即为目标区域的x,y坐标。同时,设定卡尔曼滤波的维度是4,即坐标x, y以及在xy坐标下的速度vx, vy。行人的vx, vy均可认为是匀速运动(当然需要加上各自的噪声项)。

根据knn实现的背景分割矩形中心来校正卡尔曼滤波器,滤波器预测的结果即为目标区域矩形的中心点。

根据上述假设,利用opencv的cv2.KalmanFilter()函数可建立卡尔曼滤波器模型。

下面是算法的实现效果(图中绿点即为预测结果):

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐