Motion-Based Multiple Object Tracking阅读

来源:互联网 发布:spyder python怎么用 编辑:程序博客网 时间:2024/04/27 22:36
上一个视频多目标跟踪的算法,使用到形态学操作和kalman滤波。博客里有相关简介。看了整个程序,并进行一个简单介绍各个函数功能。
%主函数function multiObjectTracking()%setupSystemObjects功能:读取视频、用两个格式播放(原图、二值化)、提取前景、采用bolb分析聚类obj = setupSystemObjects();%initializeTracks功能:创建tracks结构体:id、边框、卡尔曼滤波器、存在期限、显示期限、消失期限tracks = initializeTracks();%下一个idnextId = 1;%持续读取,直到视频结束while ~isDone(obj.reader)%阅读下一帧图像数据    frame = readFrame();%从图像数据中提取质心、边框。先进行形态学开闭运算,再通过bolb分析聚类    [centroids, bboxes, mask] = detectObjects(frame);%遍历每条track,通过卡尔曼滤波对轨迹的质心位置进行预测    predictNewLocationsOfTracks();%比较图像中提取的质心位置和通过卡尔曼先验得到的质心位置,设置一个阀值。对跟踪物体和轨迹进行匹配    [assignments, unassignedTracks, unassignedDetections] = ...        detectionToTrackAssignment();   %对匹配上的轨迹和物体跟新,更新轨迹质心、更新边框、更新轨迹ID和跟踪物体ID    updateAssignedTracks();   %更新未匹配上轨迹的消失期限和存在期限    updateUnassignedTracks();   %当满足某个阀值,比如消失期限达到20帧。则删除该轨迹    deleteLostTracks();   %对新出现的物体创建轨迹,各种初始化    createNewTracks();   %展示结果    displayTrackingResults();end



0 1
原创粉丝点击