ubuntu部署deepsort目标跟踪算法,无人车/无人机应用
🍉1、算法简介
DeepSort是对Simple Online and Realtime Tracking(Sort)的扩展,它通过预先训练的深度关联度量来整合外观信息。使用视觉外观空间中的最近邻查询来建立测量到跟踪的关联,能够通过更长时间的遮挡来跟踪对象,有效减少身份切换的数量。使 Sort 成为当时最先进的在线跟踪算法,而且该算法易于实现并实时运行。
🏅Wojke N , Bewley A , Paulus D . Simple Online and Realtime Tracking with a Deep Association Metric[C].IEEE International Conference on Image Processing (ICIP),Beijing,China. 2017:3645-3649.
上图是在具有频繁遮挡的常见跟踪情况下,我们的方法在 MOT 数据集 上的示例输出。
我们在 MOT16 基准测试上评估我们的跟踪器的性能。该基准评估了七个具有挑战性的测试序列的跟踪性能,包括带有移动摄像头的正面视图场景以及自上而下的监控设置。
跟踪 MOT16 Bench挑战的结果,我们将非标准检测与其他已发表的方法进行比较。可以看指标箭头,向上表示越高越好,向下表示越低越好。Deep Sort在ID这项远远优于Sort,同时保持有竞争力的 MOTA 分数、跟踪碎片和漏报,这也是本文的核心贡献。
🍍2、准备工作
1、从下面三个网址 git clone
源代码,第1个是deepsort源代码,第2个是yolov5源代码,第3个是行人id模型。
1、https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch
2、https://github.com/ultralytics/yolov5
3、https://github.com/KaiyangZhou/deep-person-reid
2、按下面目录放置好,最外层是下载的第一个文件夹yolov5-deepsort-pytorch,然后将yolov5文件夹移到该目录下,如下图所示:
3、然后在strong_sort下面的deep下放入我们下载好的deep-person-reid文件夹。
4、创建一个weights模型文件夹,然后放入你需要的weights,这个大家应该很熟悉了,一个是yolov5s.pt,还有一个是osnet_x0_25_msmt17.pth,前者从上面的yolo下载页面上可以找到;后者在strong_sort/deep/checkpoint下,直接复制过来即可。就像这样:
🍎3、环境配置
如果之前没有部署过深度学习算法,强烈建议先看yolov5环境的详细部署:Ubuntu20.04部署yolov5目标检测算法,开发板/无人机应用
1、安装anaconda,然后创建一个python3.8的环境,相信大家应该很熟悉了,这里就不再赘述。激活该环境,然后cd到最外层目录,输入下面命令来安装requirements.txt所需的库。deepsort是基于sort和yolo的,所以环境需求就是yolo的环境。
pip3 install -U -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
使用上面方法会非常顺利地安装成功,不需要科学上网。
2、进入deep-person-reid目录,运行python setup.py develop
,即可安装好REID环境。
🍌4、算法运行
进入配置的anaconda环境,输入python track.py运行程序,可以加入参数进行调整,比如下面五种参数很常用。
python track.py --yolo-weights weights/yolov5m.pt // yolov5权重文件
--source test.mp4 // 输入视频文件
--show-vid // 显示跟踪视频
--classes 0 2 // 0 = 行人类别, 2=小汽车类别。
--save-vid // 保存跟踪视频
我们看下单个视频的运行效果,通过yolo检测之后,deepsort对目标进行相邻帧的跟踪:
效果很不错,可以有效减少因遮挡产生的ID切换。怎么样,你学会了吗?
本文首稿完成于2022-06-29 15:51:17
相关文章
- 二分查找算法
- 朴素贝叶斯算法在垃圾邮件过滤中的应用
- 【MATLAB教程案例94】基于Matlab的IHS图像融合算法仿真案例
- 【MATLAB教程案例19】优化类算法的应用,如何针对不同问题选择不同的优化类算法
- 【MATLAB教程案例11】基于PSO粒子群优化算法的函数极值计算matlab仿真及其他应用
- 基于梯度优化的混沌PSO算法matlab仿真以及在磁悬浮球系统方面的应用
- 【ACF和AMDF】基于ACF和AMDF合作算法的语音编码matlab仿真
- ML-ZF算法的matlab仿真
- 应用谱减法进行语音去噪的算法研究
- 图的最小生成树:Kruskal算法--并查集的经典应用,解决连通性问题
- 图像处理各种变换、运算、算法的简明原理、作用和应用场合
- C#,图论与图算法,二分图(Bipartite Graph)最佳二分匹配(Maximum Bipartite Matching)算法与源程序
- C#,基于密度的噪声应用空间聚类算法(DBSCAN Algorithm)源代码
- Algorithmia:算法的应用商店
- 算法告诉你,“跑男”的能力有多强
- 《史上最强算法论战》是怎样炼成的?
- 智能计算及其应用--进化算法与遗传算法
- 排序算法
- 基于C++实现(控制台)应用递推法完成经典型算法的应用【100010505】
- 基于 Flink ML 搭建的智能运维算法服务及应用
- 《Mahout算法解析与案例实战》一一1.1 Mahout应用背景
- 《Mahout算法解析与案例实战》一一1.3 Mahout应用
- 【算法基础】算法复杂度
- 华为OD机试 - 简易压缩算法(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】
- 华为OD机试 - 获得完美走位(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】
- 华为OD机试 -新工号系统(Java) | 机试题+算法思路+考点+代码解析 【2023】
- CYQ.Data V5 分布式缓存Redis应用开发及实现算法原理介绍
- 编程算法基础-3.2自底向上风格
- PID算法
- Java数据结构与算法 day10 树结构实际应用(三)
- EMD 算法原理动图解读