ubuntu部署deepsort目标跟踪算法,无人车/无人机应用

举报
振华OPPO 发表于 2022/09/30 16:07:44 2022/09/30
【摘要】 🍉1、算法简介DeepSort是对Simple Online and Realtime Tracking(Sort)的扩展,它通过预先训练的深度关联度量来整合外观信息。使用视觉外观空间中的最近邻查询来建立测量到跟踪的关联,能够通过更长时间的遮挡来跟踪对象,有效减少身份切换的数量。使 Sort 成为当时最先进的在线跟踪算法,而且该算法易于实现并实时运行。🏅Wojke N , Bewle...

🍉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.

![在这里插入图片描述](https://img-blog.csdnimg.cn/68e88884794b4d7a853e591c21254122.png#pic_center =940x480)

上图是在具有频繁遮挡的常见跟踪情况下,我们的方法在 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对目标进行相邻帧的跟踪:

![在这里插入图片描述](https://img-blog.csdnimg.cn/1162b11474a946c493ed25a2c045b2e9.gif#pic_center =1920x480)

效果很不错,可以有效减少因遮挡产生的ID切换。怎么样,你学会了吗?

本文首稿完成于2022-06-29 15:51:17

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。