MATLAB中的检测跟踪模块
2018-03-07 20:56
239 查看
MATLAB中利用光流法进行跟踪的模块这个模型使用光流预测技巧估计视频序列中的每一帧的运动矢量。通过阈值化运动矢量,模型创建了一个包含运动目标块的二值化特征图。使用中值滤波提出散射噪声。执行闭操作剔除块中的小孔。使用斑点分析模块对每个二值化特征图中定位汽车。利用Draw Shapes 模块在汽车周围画出一个绿色矩形框。结果窗口的左上角标出感兴趣的区域数目。运行demo,输入命令行:viptrafficof
多目标跟踪跟踪是在一个视频流的一段时间中定位一个或多个运动的目标。跟踪和检测不一样。检测是在单帧中定位感兴趣的目标。跟踪是目标多帧检测。多目标跟踪需要检测,预测和数据关联。检测:在一个视频帧中检测出目标。预测:在下一帧中预测目标的位置。数据关联:使用预测的位置来讲不同帧的检测结果联系起来形成轨迹。
如果相机是静态的,可以使用背景相减的方法,用
为了检测运动相机下目标的运动,可以使用滑动窗的方法。这种方法比背景相减方法慢。为了检测跟踪特定类别的目标,使用下表中描述的语句。
选择一个检测算法
预测:
跨越时间的跟踪意味着在下一帧预测目标的位置。最简单的方法是假设目标就在它上一帧已知位置附近。换句话说,上一帧的检测结果充当下一帧的预测。这种方法对于高帧率尤其有效。然而,当目标以不同的速度运动,或帧率低于目标运动的速度时,使用这种预测方法会失败。
更复杂的预测是用之前目标的运动。卡尔曼滤波( (
配置卡尔曼滤波很容易, 请使用
数据关联
数据关联是将与同一物理对象相对应的检测跨帧关联的过程。特定对象的时间历史记录由多个检测组成, 并称为跟踪。轨道表示可以包括对象以前位置的整个历史记录。或者, 它只能包含对象的最后一个已知位置及其当前速度。
检测到跟踪代价函数
为了匹配检测和跟踪,建立一个评估准则。通常通过定义一个代价函数建立该准则,检测到跟踪的匹配代价越大,检测属于跟踪的可能性越小,一个对预测不确定新的计量是使用距离。也可以融合目标尺寸和外观信息。
消除不匹配
闸门是一种消除不太可能的匹配的方法,例如对成本函数施加一个阈值。如果成本超过某个阈值,则无法与跟踪相匹配。利用这个阈值方法可以有效地在每个预测周围形成一个圆形的门控区域,在那里可以找到匹配的检测。另一种可选的门控技术是使门控区域足够大,使其能够包含预测的最近的邻居。
分配检测到跟踪
数据关联可以简化为一个最小化二部匹配问题,这是一个研究良好的图论领域
多目标跟踪跟踪是在一个视频流的一段时间中定位一个或多个运动的目标。跟踪和检测不一样。检测是在单帧中定位感兴趣的目标。跟踪是目标多帧检测。多目标跟踪需要检测,预测和数据关联。检测:在一个视频帧中检测出目标。预测:在下一帧中预测目标的位置。数据关联:使用预测的位置来讲不同帧的检测结果联系起来形成轨迹。
如果相机是静态的,可以使用背景相减的方法,用
vision.ForegroundDetectorSystem object(使用高斯混合模型的前景检测)(利用
detector= vision.ForegroundDetector语句得到前景目标检测器。给定一系列灰度或彩色视频帧,使用高斯混合模型(GMM)返回前景遮罩)
References
[1] P. Kaewtrakulpong, R. Bowden, An Improved Adaptive Background Mixture Model for Realtime Tracking with Shadow Detection, In Proc. 2nd European Workshop on Advanced Video Based Surveillance Systems, AVBS01, VIDEO BASED SURVEILLANCE SYSTEMS: Computer Vision and Distributed Processing (September 2001)[2] Stauffer, C. and Grimson, W.E.L,Adaptive Background Mixture Models for Real-Time Tracking, Computer Vision and Pattern Recognition, IEEE Computer Society Conference on, Vol. 2 (06 August 1999), pp. 2246-252 Vol. 2.如果相机是运动的为了检测运动相机下目标的运动,可以使用滑动窗的方法。这种方法比背景相减方法慢。为了检测跟踪特定类别的目标,使用下表中描述的语句。
选择一个检测算法
Type of Object to Track | Camera | Functionality |
---|---|---|
Anything that moves | Stationary | vision.ForegroundDetectorSystem object™ |
Faces, eyes, nose, mouth, upper body | Stationary, Moving | vision.CascadeObjectDetectorSystem object |
Pedestrians | Stationary, Moving | vision.PeopleDetectorSystem object |
Custom object category | Stationary, Moving | trainCascadeObjectDetectorfunction or custom sliding window detector using extractHOGFeaturesand selectStrongestBbox |
跨越时间的跟踪意味着在下一帧预测目标的位置。最简单的方法是假设目标就在它上一帧已知位置附近。换句话说,上一帧的检测结果充当下一帧的预测。这种方法对于高帧率尤其有效。然而,当目标以不同的速度运动,或帧率低于目标运动的速度时,使用这种预测方法会失败。
更复杂的预测是用之前目标的运动。卡尔曼滤波( (
vision.KalmanFilter))预测目标下一帧的位置,假设目标根据一个运动模型运动,例如恒定速度或恒定加速度。卡尔曼滤波也考虑过程噪声和测量噪声。过程噪声是目标的实际运动与运动模型的偏差。测量噪声检测错误。
配置卡尔曼滤波很容易, 请使用
configureKalmanFilter。此函数设置用于跟踪在笛卡尔坐标系内以恒定速度或恒定加速度移动的物理对象的过滤器。统计数据沿所有维度都是相同的。如果需要配置具有不同假设的卡尔曼筛选器, 则需要构造
vision.KalmanFilter对象。
数据关联
数据关联是将与同一物理对象相对应的检测跨帧关联的过程。特定对象的时间历史记录由多个检测组成, 并称为跟踪。轨道表示可以包括对象以前位置的整个历史记录。或者, 它只能包含对象的最后一个已知位置及其当前速度。
检测到跟踪代价函数
为了匹配检测和跟踪,建立一个评估准则。通常通过定义一个代价函数建立该准则,检测到跟踪的匹配代价越大,检测属于跟踪的可能性越小,一个对预测不确定新的计量是使用距离。也可以融合目标尺寸和外观信息。
消除不匹配
闸门是一种消除不太可能的匹配的方法,例如对成本函数施加一个阈值。如果成本超过某个阈值,则无法与跟踪相匹配。利用这个阈值方法可以有效地在每个预测周围形成一个圆形的门控区域,在那里可以找到匹配的检测。另一种可选的门控技术是使门控区域足够大,使其能够包含预测的最近的邻居。
分配检测到跟踪
数据关联可以简化为一个最小化二部匹配问题,这是一个研究良好的图论领域
相关文章推荐
- OpenCV运动检测跟踪(blob track)框架组成模块详解
- OpenCV运动检测跟踪(blob track)框架组成模块详解
- Matlab图像序列中的运动目标检测与跟踪
- MATLAB开发计算机视觉——目标检测与跟踪
- OpenCV运动检测跟踪(blob track)框架组成模块详解
- 使用MATLAB机器视觉工具箱实现人脸的检测和跟踪
- OpenCV运动检测跟踪(blob track)框架组成模块详解
- OpenCV运动检测跟踪(blob track)框架组成模块详解
- matlab工具箱之人眼检测+meanshift跟踪算法--人眼跟踪
- php检测apache mod_rewrite模块是否安装的方法
- 红外小目标检测matlab程序——基于《Infrared Small-Target Detection Using Multiscale Gray Difference Weighted Image》
- 常用图像边缘检测、增强MATLAB实现
- 特征点检测及跟踪
- 目标检测、目标跟踪的测试用图像序列
- OpenCV与Compressive Tracking实现人脸的实时检测与跟踪
- 人脸跟踪检测代码注释
- matlab—GUI实现摄像头人脸检测
- 【目标检测】OpenCV中dnn模块的SSD demo运行
- 检测和跟踪的衡量指标
- 【CSON原创】HTML5游戏框架cnGameJS开发实录(碰撞检测模块篇)