您的位置:首页 > 移动开发 > Objective-C

Motion-Based Multiple Object Tracking阅读

2016-05-04 14:22 375 查看
上一个视频多目标跟踪的算法,使用到形态学操作和kalman滤波。博客里有相关简介。看了整个程序,并进行一个简单介绍各个函数功能。
%主函数
function multiObjectTracking()
%setupSystemObjects功能:读取视频、用两个格式播放(原图、二值化)、提取前景、采用bolb分析聚类
obj = setupSystemObjects();
%initializeTracks功能:创建tracks结构体:id、边框、卡尔曼滤波器、存在期限、显示期限、消失期限
tracks = initializeTracks();
%下一个id
nextId = 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: