YOLOv5+DeepSort实现目标跟踪

这篇具有很好参考价值的文章主要介绍了YOLOv5+DeepSort实现目标跟踪。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文将展示如何将YOLOv5和Deepsort相结合,实现目标跟踪计数等功能。由于水平有限,本文将更多着眼于如何实现,原理部分我会推荐几篇博客供大家学习参考。

原理介绍

推荐下面这篇博客,讲的很细致:

Yolov5_DeepSort_Pytorch代码学习与修改记录__helen_520的博客

YOLOv5具备目标检测的功能,把视频分解成多幅图像并逐帧执行时,如果视频帧中有多个目标,如何知道一帧中的目标和上一帧是同一个对象就是目标跟踪的工作。

DeepSort是实现目标跟踪的算法,从sort(simple online and realtime tracking)演变而来,使用卡尔曼滤波器预测所检测对象的运动轨迹,匈牙利算法将它们与新的检测目标相匹配。

两者相结合即可实现简单的目标跟踪功能。

准备工作

Deepsort源码下载

https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch.git

注意版本对应关系:

DeepSort v3.0 ~ YOLOv5 v5.0

DeepSort v4.0 ~ YOLOv5 v6.1

由于我之前演示用的代码是v5.0版本,所以应该下载DeepSort v3.0

YOLOv5+DeepSort实现目标跟踪

DeepSort v3.0

如果网不太好,可以用我分享的这个(一些必要的文件已经配好了):

链接:https://pan.baidu.com/s/1rZm1XgPDzpCAJc6JyY8PQQ

提取码:atld

环境配置

Deepsort所需要的环境和YOLOv5略有不同,因此更推荐大家用Anaconda新建一个环境,当然如果全部重新配置比较费时间,这里介绍一个偷懒的方法(环境配置大佬请跳过)。

打开Anaconda Prompt输入:

conda create -n XXX --clone yolo5

这个操作是复制已有环境,XXX是复制得到的环境名称。不同的代码所需要库的版本有差异,为了避免冲突,可以通过这种方式得到一个镜像环境,对镜像环境进行删除库、安装库的操作就不会影响到之前的环境。

YOLOv5+DeepSort实现目标跟踪

这是我复制得到的新环境

下面复习一下将环境导入pycharm的配置步骤,具体讲解可以看我之前写的一篇博客:

YOLOv5环境配置中的一些细节

YOLOv5+DeepSort实现目标跟踪

然后在终端输入下方命令,一键导入库即可。

pip install -r requirements.txt
YOLOv5+DeepSort实现目标跟踪

如果因为网络原因库安装失败,重复输入上述命令即可。当然在运行代码过程中,编译器也会提示有些库没有安装导致运行失败(No Module named XXX),在Anaconda Prompt中先激活环境,再把对应的库pip安装上即可。

放入目标检测工程

YOLOv5+DeepSort实现目标跟踪

将之前的YOLOv5工程文件放入总工程文件夹中。为了贴合track.py中的源码,把yolo工程文件夹重命名一下,这样就不用在track.py中更改导入包的路径了(偷个懒)。

YOLOv5+DeepSort实现目标跟踪

实现目标跟踪

更改参数路径

YOLOv5+DeepSort实现目标跟踪

第一行是采用yolov5工程中的官方权重yolov5s.pt(注意,你的路径不一定和我一样,只要锁定到yolov5s.pt就行,当然可以把路径锁定到自己训练的权重)

第二行是调用deep_sort工程中的官方模型ckpt.t7(可以使用其他模型)

第三行是识别对象,这里识别视频1.mp4

第四行表示结果将会输出在output文件夹中

更改后track.py的参数设置如下

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--yolo_weights', type=str, default='yolov5/weights/yolov5s.pt', help='model.pt path')
    parser.add_argument('--deep_sort_weights', type=str, default='deep_sort_pytorch/deep_sort/deep/checkpoint/ckpt.t7', help='ckpt.t7 path')
    # file/folder, 0 for webcam
    #parser.add_argument('--source', type=str, default='0', help='source')
    parser.add_argument('--source', type=str, default='1.mp4', help='source')
    parser.add_argument('--output', type=str, default='output', help='output folder')  # output folder
    parser.add_argument('--img-size', type=int, default=640, help='inference size (pixels)')
    parser.add_argument('--conf-thres', type=float, default=0.4, help='object confidence threshold')
    parser.add_argument('--iou-thres', type=float, default=0.5, help='IOU threshold for NMS')
    parser.add_argument('--fourcc', type=str, default='mp4v', help='output video codec (verify ffmpeg support)')
    parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
    parser.add_argument('--show-vid', action='store_true', help='display tracking video results')
    parser.add_argument('--save-vid', action='store_true', help='save video tracking results')
    parser.add_argument('--save-txt', action='store_true', help='save MOT compliant results to *.txt')
    # class 0 is person, 1 is bycicle, 2 is car... 79 is oven
    parser.add_argument('--classes', nargs='+', default=[0], type=int, help='filter by class')
    parser.add_argument('--agnostic-nms', action='store_true', help='class-agnostic NMS')
    parser.add_argument('--augment', action='store_true', help='augmented inference')
    parser.add_argument('--evaluate', action='store_true', help='augmented inference')
    parser.add_argument("--config_deepsort", type=str, default="deep_sort_pytorch/configs/deep_sort.yaml")
    args = parser.parse_args()
    args.img_size = check_img_size(args.img_size)

    with torch.no_grad():
        detect(args)

运行

在终端中输入下方命令

python track.py --source 1.mp4 --save-vid --yolo_weights yolov5/weights/yolov5s.pt
YOLOv5+DeepSort实现目标跟踪

运行结束后会在track.py同级目录下生成output文件夹,里面是识别完成的视频。

YOLOv5+DeepSort实现目标跟踪
YOLOv5+DeepSort实现目标跟踪
YOLOv5+DeepSort实现目标跟踪

效果

也可以用下面的命令运行代码,这个命令会弹出窗口,显示识别标记的视频但运行会比较慢

python track.py --source 1.mp4 --show-vid --save-vid --yolo_weights yolov5/weights/yolov5s.pt

调用摄像头进行实时目标追踪

运行下方命令即可,0表示电脑自带的摄像头。点击弹出的窗口,在英文小写状态下按键盘上的'q'即可保存检测视频,结果保存在output文件夹中。

python track.py --source 0 --show-vid --save-vid --yolo_weights yolov5/weights/yolov5s.pt

也可以将“--source”的默认值换成其他数字调用连接的USB摄像头,或者换成局域网址调用IP摄像头。详细讲解可以看之前的博客:

使用YOLOv5实现多摄像头实时目标检测_yolov5多目标检测_Albert_yeager的博客

YOLOv5调用IP摄像头_Albert_yeager的博客

求学路上,你我共勉(๑•̀ㅂ•́)و✧文章来源地址https://www.toymoban.com/news/detail-438893.html

到了这里,关于YOLOv5+DeepSort实现目标跟踪的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Yolov5-Lite + Sort算法实现边缘目标跟踪

    昨天挖了个坑,那么今天的话把坑填上,只要是实现Sort算法和Yolov5-Lite的一个整合。当然先前的话,我们在Yolov3–Tiny的时候,也做了一个,不过当时的话,有几个问题没有解决。第一就是当时以中心点进行预测的,这样做的结果就是如果目标框的波动比较大的话,影响会很大

    2024年02月15日
    浏览(51)
  • YOLOv5在android端实现目标检测+跟踪+越界识别并报警

    想要获取源码和相关资料说明的可以关注我的微信公众号: 雨中算法屋 , 后台回复 越界识别 即可获取,有问题也可以关注公众号加我微信联系我,相互交流学习。 算法功能: 判断划定的区域内,在某个时间内,是否有⼈体闯⼊,涉及到了⼈体检测+⼈体追踪+业务功能(区

    2023年04月12日
    浏览(49)
  • 智能交通系统-yolov5+deepsort车辆跟踪、计数、测速、碰撞检测、违规驶入检测(算法-毕业设计)

    本项目效果展示视频:https://www.bilibili.com/video/BV1E3411G7cP/ 1、本项目通过yolov8/yolov7/yolov5 5.0和deepsort实现了一个多功能智能交通监控系统,可为一些同学的课设、大作业等提供参考。分别实现了不同车辆的跟踪,统计不同车型“上行”和“下行”的数量,实时检测车辆速度,检

    2023年04月09日
    浏览(50)
  • 【Yolov5+Deepsort】训练自己的数据集(1)| 目标检测&追踪 | 轨迹绘制

    📢前言: 本篇是关于 如何使用YoloV5+Deepsort训练自己的数据集 ,从而实现目标检测与目标追踪,并绘制出物体的运动轨迹。本章讲解的为第一个内容:简单介绍YoloV5+Deepsort中所用到的 目标检测,追踪及sortDeppsort算法。 本文中用到的数据集均为自采,实验动物为斑马鱼。 文尾

    2024年02月14日
    浏览(64)
  • 【Yolov5+Deepsort】训练自己的数据集(3)| 目标检测&追踪 | 轨迹绘制 | 报错分析&解决

    📢前言: 本篇是关于 如何使用YoloV5+Deepsort训练自己的数据集 ,从而实现目标检测与目标追踪,并绘制出物体的运动轨迹。本章讲解的为第三部分内容:数据集的制作、Deepsort模型的训练以及动物运动轨迹的绘制。本文中用到的数据集均为自采,实验动物为斑马鱼。 💻环境

    2024年02月10日
    浏览(52)
  • 经典多目标跟踪算法DeepSORT的基本原理和实现

    点击蓝字 关注我们,让开发变得更有趣 作者| 杨亦诚 排版| 李擎 经典多目标跟踪算法DeepSORT的基本原理和实现 OpenVINO 目标检测 vs 目标跟踪 在开始介绍DeepSORT的原理之前呢,我们先来了解下目标检测,和目标跟踪之间的区别: · 目标检测:在目标检测任务中,我们需要利用A

    2024年02月03日
    浏览(43)
  • 模型实战(14)之YOLOv8+Deepsort 实现车辆跟踪+计数 详解

    本文通过最新的检测模型YOLOv8算法+deepsort实现车辆跟踪与计数功能 源码+工程详解以点此直接下载可用 https://download.csdn.net/download/yohnyang/88026100 其效果如下: YOLOv8 + deepsort 智能车辆跟踪与计数系统 新建虚拟环境

    2024年02月13日
    浏览(47)
  • yolov5-tracking-xxxsort yolov5融合六种跟踪算法(二)--目标识别

    本次开源计划主要针对大学生无人机相关竞赛的视觉算法开发。 开源代码仓库链接:https://github.com/zzhmx/yolov5-tracking-xxxsort.git 先按照之前的博客配置好环境: yolov5-tracking-xxxsort yolov5融合六种跟踪算法(一)–环境配置GPU版本 yolov5-tracking-xxxsort yolov5融合六种跟踪算法(一)–

    2024年02月22日
    浏览(49)
  • AI项目八:yolo5+Deepsort实现目标检测与跟踪(CPU版)

    若该文为原创文章,转载请注明原文出处。    DeepSORT 是一种计算机视觉跟踪算法,用于在为每个对象分配 ID 的同时跟踪对象。DeepSORT 是 SORT(简单在线实时跟踪)算法的扩展。DeepSORT 将深度学习引入到 SORT 算法中,通过添加外观描述符来减少身份切换,从而提高跟踪效率。

    2024年02月07日
    浏览(55)
  • 【多目标跟踪与计数】(三)DeepSORT实战车辆和行人跟踪计数

    论文地址: https://arxiv.org/pdf/1703.07402.pdf 参考文章: DeepSort讲解 代码地址: https://github.com/mikel-brostrom/Yolov5_DeepSort_OSNet(可参考这个源代码,如果需要我这边的源代码可私信) SORT对比DeepSORT: 虽然SORT是一个非常简单、有效、实用的多目标跟踪算法,但仅仅通过IOU来匹配虽然

    2024年02月02日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包