加微信进交流群:xituxiaoshutong100

基于YOLOv5和DeepSort的目标跟踪

YOLO 迷途小书童 5评论

软硬件环境

视频看这里

此处是youtube的播放链接,需要科学上网。喜欢我的视频,请记得订阅我的频道,打开旁边的小铃铛,点赞并分享,感谢您的支持。

YOLOv5

前文 YOLOv5目标检测YOLOv5模型训练 已经介绍过了YOLOv5相关的内容,在目标检测中效果不错。

DeepSort

SORT算法的思路是将目标检测算法(如YOLO)得到的检测框与预测的跟踪框的iou(交并比)输入到匈牙利算法中进行线性分配来关联帧间 ID。而DeepSORT算法则是将目标的外观信息加入到帧间匹配的计算中,这样在目标被遮挡但后续再次出现的情况下,还能正确匹配这个ID,从而减少ID的切换,达到持续跟踪的目的。

目标跟踪

项目地址 https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch,使用的是Pytorch深度学习框架,联合YOLOv5DeepSort两个目前很火且效果非常不错的算法工程,实现特定物体的目标跟踪。

git clone https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch.git
cd Yolov5_DeepSort_Pytorch
pip install torch==1.6.0+cu101 torchvision==0.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html
pip install -r requirements.txt

然后去下载权重文件,YOLOv5的权重文件放置在yolov5/weights文件夹下,DeepSort的权重文件ckpt.t7放置在deep_sort/deep/checkpoint文件夹下

下载链接,百度网盘下载地址, 提取码:u5v3

找个测试视频,来看看效果吧

python track.py --source test.mp4

测试效果图

deepsort

V2.0更新

2.0 release版本主要是适配了yolov5的5.0版本;增加了在MOT16上的验证;自动下载yolov5的权重文件。需要注意的是,作者并没有将yolov5的源码在自己的仓库中进行管理,因此,需要自己去下载对应版本的yolov5

找到对应的tag标签,比如现在的v2.0版本,点击进入

yolov5 deepsort

这样就进入了对应的yolov5的版本,这个版本,一般是作者验证过的,靠谱

yolov5 deepsort

下载zip包(git clone也是可以的,看你喜欢)

yolov5 deepsort

然后解压到yolov5的文件夹下即可

由于更新了yolov5,因此,pytorch的版本也需要更新到1.7以上,我这里匹配的是cuda 10.1。没有gpu的直接按照requirements.txt来安装

pip install torch==1.7.1+cu101 torchvision==0.8.2+cu101 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

track.py命令行参数做了一些修改,默认情况下不显示带测试结果的视频,需要加上参数--show-vid

python track.py --source test.mp4 --show-vid

FAQ

windows上出现了下面的错误提示

OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.

解决方法是,在track.py中加上语句

import os

os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"

参考资料

喜欢 (1)
发表我的评论
取消评论

表情
(5)个小伙伴在吐槽
  1. 博主您好,使用您的项目效果一直都很好,但是当目标太小时会检测不出来,请问可以怎么处理,https://blog.csdn.net/weixin_41868104/article/details/111596851只像这样增加小目标检测层可以吗,不知道是不是我的实现有问题,添加了小目标检测后还是不行。
    匿名2021-07-16 09:38 回复
  2. 如果要保存结果需要在python track.py --source test.mp4后面加上 --save-vid 路径是Yolov5_DeepSort_Pytorch-master\inference\output 如果要显示需要加 --show-vid
    匿名2021-07-08 17:22 回复
    • 对,根据自己需要添加命令行参数。其实,当拿到一个新项目时,如果不知道怎么用,或者说想知道脚本都有哪些功能,第一个要做的就是python demo.py -h
      迷途小书童2021-07-08 21:13 回复
  3. 请问跟着流程走,命令提示符只显示每一帧处理完了,没有弹出视频框看实时效果是怎么回事?
    匿名2021-06-23 11:22 回复
    • 你看看cv2.imshow有没有被执行?
      迷途小书童2021-06-23 22:16 回复