永远都像初次见你那样使我心荡漾
参考文献
【1】DeepSeek
【2】bilibili
目前主流的视觉目标跟踪算法
以下是目前主流的视觉目标跟踪算法分类及其应用场景、优缺点总结,涵盖传统方法和深度学习方法:
一、传统跟踪算法
1. 卡尔曼滤波(Kalman Filter)
- 场景:线性运动预测、简单场景下的单目标跟踪(如无人机跟踪、车辆轨迹预测)。
- 优点:计算量小、实时性高、适合线性运动模型。
- 缺点:对非线性运动或复杂遮挡表现差,依赖准确的初始状态和噪声参数调优。
2. 相关滤波(Correlation Filter,如KCF、MOSSE)
- 场景:实时单目标跟踪(如摄像头监控、机器人视觉)。
- 优点:利用频域计算加速,速度快(100+ FPS),适合嵌入式设备。
- 缺点:对尺度变化、遮挡、快速运动鲁棒性差,依赖手工特征(如HOG)。
3. 均值漂移(MeanShift/CamShift)
- 场景:颜色特征明显的目标跟踪(如交通信号灯、特定颜色物体)。
- 优点:无需运动模型,计算简单。
- 缺点:依赖颜色分布,背景颜色干扰易导致跟踪失败。
二、深度学习单目标跟踪算法
1. Siamese系列(SiamFC、SiamRPN、SiamMask)
- 场景:通用单目标跟踪(如视频会议人脸跟踪、体育赛事运动员跟踪)。
- 优点:端到端训练,平衡速度与精度,支持在线更新。
- 缺点:对相似背景干扰敏感,长时遮挡易导致跟踪漂移。
2. Transformer-based(TransT、STARK、MixFormer)
- 场景:复杂遮挡、形变、快速运动的鲁棒跟踪(如自动驾驶中的行人跟踪)。
- 优点:全局建模能力强,对长时依赖和遮挡鲁棒。
- 缺点:计算复杂度高,实时性较差(通常 <30 FPS)。
3. 在线更新模型(ATOM、DiMP)
- 场景:需要动态适应目标外观变化的场景(如动物行为研究)。
- 优点:在线优化分类器,适应目标形变和光照变化。
- 缺点:计算开销大,易受噪声干扰导致模型漂移。
三、多目标跟踪(MOT)算法
1. SORT/DeepSORT
- 场景:多目标跟踪(如监控摄像头中的行人/车辆计数)。
- 优点:
- SORT:基于卡尔曼滤波+匈牙利算法,速度极快(100+ FPS)。
- DeepSORT:加入外观特征(ReID),减少ID切换(Identity Switch)。
- 缺点:依赖检测器性能(如YOLO),密集遮挡下ID切换仍较多。
2. FairMOT/JDE
- 场景:实时多目标跟踪(如人群流量统计、自动驾驶)。
- 优点:联合检测与跟踪(Detection+Embedding),平衡速度与精度。
- 缺点:检测与特征提取耦合,模型复杂度高。
3. ByteTrack/OC-SORT
- 场景:遮挡频繁的低质量视频(如交通拥堵场景)。
- 优点:
- ByteTrack:利用低置信度检测框,减少漏检。
- OC-SORT:通过轨迹插值抗遮挡,ID切换率低。
- 缺点:对检测器噪声敏感,需额外计算资源。
四、应用场景与算法选择建议
场景需求 | 推荐算法 |
---|---|
嵌入式设备实时跟踪 | KCF、SORT |
复杂遮挡/形变 | TransT、OC-SORT |
多目标且高精度要求 | DeepSORT、FairMOT |
长时跟踪(如野生动物监测) | SiameseRPN++、GlobalTrack |
低光照/模糊视频 | ATOM、DiMP(在线更新能力强) |
五、算法优缺点对比总结
算法类型 | 优点 | 缺点 |
---|---|---|
卡尔曼滤波 | 轻量、实时性强 | 仅适合线性运动,无外观建模 |
相关滤波(KCF) | 高频实时跟踪 | 尺度变化和遮挡鲁棒性差 |
Siamese网络 | 端到端、速度精度平衡 | 长时遮挡易失效 |
Transformer跟踪 | 全局建模、抗遮挡强 | 计算资源消耗大 |
DeepSORT | 多目标ID保持稳定 | 依赖检测器,密集场景ID切换 |
六、未来趋势
- 轻量化:结合神经网络剪枝、量化技术,提升嵌入式部署能力。
- 多模态融合:结合RGB、深度、红外等多传感器数据。
- 无监督学习:减少对标注数据的依赖(如自监督跟踪)。
- Transformer+CNN混合架构:兼顾全局推理与局部特征提取。
根据实际需求(硬件条件、场景复杂度、实时性要求),选择适合的算法组合(如YOLOv8检测+ByteTrack跟踪)。
卡尔曼滤波实现目标跟踪
待续…
DeepSort、ByteTrack
开源项目参考:https://github.com/shaoshengsong/DeepSORT
DeepSort = YOLO + 视觉外观特征 + 卡尔曼滤波 + 匈牙利算法
依赖:opencv4.x,eigen3
文件结构:
- 目标检测模型(YOLO模型):
yolov5s.onnx
使用YOLO训练,并导出为onnx格式。 - 目标检测模型对应的标签文件:例如
coco_80_labels_list.txt
根据训练的数据集而定。 - 特征训练模型:
feature.onnx
可使用TensorFlow或PyTorch对数据集进行特征训练,并将模型导出为onnx格式。 - ONNX Runtime 硬件加速文件:
onnxruntime-linux-x64-1.12.1
根据硬件平台和操作系统,到https://onnxruntime.ai官网下载。
代码 实践
需要根据情况修改的文件:YOLOv5Detector.cpp、main.cpp、dataType.h
const std::string k_feature_model_path ="../feature.onnx";
const std::string k_detect_model_path ="../yolov5s.onnx";
cv::VideoCapture capture("../3.mp4");
std::string file="../coco_80_labels_list.txt";
使用 DeepSort 或 ByteTrack:main.cpp
test_deepsort(frame, results,mytracker);
//test_bytetrack(frame, results,bytetracker);
只检测行人:main.cpp
if(dr.classId == 0) //person only:
{
objects.push_back(dr);
cv::rectangle(frame, dr.box, cv::Scalar(255, 0, 0), 2);
get_detections(DETECTBOX(dr.box.x, dr.box.y,dr.box.width, dr.box.height),dr.confidence, detections);
}
数据集
参考:DeepSeek
以下是几个常用的多目标视觉跟踪(Multi-Object Tracking, MOT)测试视频及其下载地址,这些数据集被广泛用于学术界和工业界的算法验证:
1. MOT Challenge 数据集
- 简介:多目标跟踪领域最权威的基准测试数据集,包含行人、车辆等多种场景。
- 下载地址:
- 官网:https://motchallenge.net/
- 包含多个子数据集(如
MOT17
,MOT20
),提供标注数据和视频。
- 特点:
- 高分辨率、复杂场景(拥挤、遮挡等)。
- 提供训练集和测试集,支持算法公平对比。
2. KITTI Tracking 数据集
- 简介:自动驾驶领域的经典数据集,专注于车辆和行人的多目标跟踪。
- 下载地址:
- 官网:http://www.cvlibs.net/datasets/kitti/eval_tracking.php
- 需要注册并填写数据使用协议。
- 特点:
- 真实道路场景,包含激光雷达、摄像头等多模态数据。
- 适合测试复杂交通场景下的跟踪算法。
3. UA-DETRAC 数据集
- 简介:专注于车辆多目标跟踪的大规模数据集,适用于交通监控场景。
- 下载地址:
- 官网:http://detrac-db.rit.albany.edu/
- 直接通过 HTTP/FTP 下载:http://detrac-db.rit.albany.edu/Data
- 特点:
- 包含 10 小时高清视频,超过 8 万个标注框。
- 涵盖不同天气和光照条件。
4. YouTube-BB 和 YouTube-8M
- 简介:YouTube 视频片段中的多目标跟踪数据集,覆盖多样化物体类别。
- 下载地址:
- YouTube-BB:https://research.google.com/youtube-bb/
- YouTube-8M:https://research.google.com/youtube8m/
- 特点:
- 动态背景、快速运动目标,适合测试鲁棒性。
- 需要自行提取视频片段(工具见官网)。
5. TAO 数据集(TAO: A Large-Scale Benchmark for Tracking Any Object)
- 简介:由 FAIR(Facebook AI Research)发布的通用目标跟踪数据集。
- 下载地址:
- 官网:https://taodataset.org/
- 特点:
- 覆盖 833 类物体,包含密集标注的长视频。
- 支持开放世界(Open-World)跟踪任务。
6. PETS 数据集(Performance Evaluation of Tracking and Surveillance)
- 简介:经典的人群跟踪与监控数据集。
- 下载地址:
- 官网:http://www.cvg.reading.ac.uk/PETS2009/
- 特点:
- 包含多视角、高密度人群场景。
- 适合测试遮挡处理能力。
7. 自定义视频生成工具
- MOTSynth:合成数据集生成工具,可自定义场景、目标数量和运动模式。
- GitHub:https://github.com/dvl-tum/motsynth
- Blender 脚本:利用 Blender 生成虚拟多目标跟踪视频。
- 教程:https://blender.org/
使用建议:
- 学术研究:优先选择
MOT Challenge
或KITTI
,确保结果可比性。 - 实际应用:根据场景选择
UA-DETRAC
(交通)或TAO
(通用物体)。 - 快速测试:从 YouTube 公开视频中截取片段(注意版权)。
如果需要具体视频的直接下载链接,可访问上述官网或通过学术平台(如 Kaggle、Zenodo)搜索公开分享的资源。