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
相关文章推荐
- The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?...
- Objective-C 高性能的循环
- QMetaObject::connectSlotsByName: No matching signal for问题的解决方法
- json字符串转换为JSONObject和JSONArray
- Runtime方法的使用—Object篇
- Android JsonObject 数据的遍历
- Object C基础学习(三)
- Java Object 的介绍
- juce 中的ReferenceCountedObjectPtr
- 使用Objective-C的文档生成工具:appledoc
- 速战速决 (2) - PHP: 数据类型 bool, int, float, string, object, array
- JAVA、PHP、C#、Object-C 通用的DES加密解密
- java.lang.Object
- Object-c------类的本质
- python 2.x和3.x关于 'module' object has no attribute 'open'的解决办法
- python 2.x和3.x关于 'module' object has no attribute 'open'的解决办法
- Realm的model终于可以不继承RealmObject了
- 一定要看的。深入理解Objective-C:Category
- Object-c------分类
- Objective-C中instancetype详解