YOLOv9 实现多目标跟踪

news2024/12/23 19:32:05

YOLOv9项目结合了YOLOv9的快速目标检测能力和DeepSORT的稳定跟踪能力,实现了对视频流中多个对象的实时、准确检测和跟踪。在具体应用中,该项目能够对视频中的行人、车辆或其他物体进行实时定位、识别和持续跟踪,即使在复杂环境、对象互相遮挡或出现短暂消失的情况下也能保持较好的跟踪性能。这样的技术在智能监控、自动驾驶、无人机导航、体育赛事分析等多个领域都有着广泛的应用潜力。

安装:

1.克隆此存储库:

cd YOLOv9_DeepSORT

2.创造新环境 使用conda

conda env create -f conda.yml conda activate yolov9-deepsort

使用点

python3 -m virtualenv -p python3.11 yolov9-deepsort source yolov9-deepsort/bin/activate pip install -r requirements.txt

3.克隆 YOLOv9 存储库:

pip install -r requirements.txt mv ../object_tracking.py ../yolov9

4.下载模型重量

mkdir weights

用法

  1. 准备视频文件:

    • 将视频文件放置在所需位置。
    • 更新video视频文件路径中的标志或将其设置为0使用网络摄像头作为输入。
  2. 下载YOLOv9模型:

    • 确保对应的模型权重可用。
  3. 配置输出视频:

    • 更新output代码中的标志以指定输出视频文件的路径和文件名。
  4. 设置置信度阈值:

    • 调整conf代码中的标志以设置对象检测的置信度阈值。置信度低于此阈值的对象将被过滤掉。
  5. 如果您想检测并跟踪视频中的某些对象

    • 修改class_id代码中的flag,指定检测的类ID。该标志的默认值设置为 None。如果您只想检测和跟踪人员,请将其设置为 0,或参考 coco.names 文件了解其他选项。
  6. 如果您想在跟踪时模糊某些对象

    • 修改bulr_id代码中的flag,指定检测的类ID。该标志的默认值设置为 None。
  7. 运行代码:

    用法

  8. 准备视频文件:

    • 将视频文件放置在所需位置。
    • 更新video视频文件路径中的标志或将其设置为0使用网络摄像头作为输入。
  9. 下载YOLOv9模型:

    • 确保对应的模型权重可用。​ (YOLOv9-S/YOLOv9-M/ YOLOv9-C / YOLOv9-E ) ​
  10. 配置输出视频:

    • 更新output代码中的标志以指定输出视频文件的路径和文件名。
  11. 设置置信度阈值:

    • 调整conf代码中的标志以设置对象检测的置信度阈值。置信度低于此阈值的对象将被过滤掉。
  12. 如果您想检测并跟踪视频中的某些对象

    • 修改class_id代码中的flag,指定检测的类ID。该标志的默认值设置为 None。如果您只想检测和跟踪人员,请将其设置为 0,或参考 coco.names 文件了解其他选项。
  13. 如果您想在跟踪时模糊某些对象

    • 修改bulr_id代码中的flag,指定检测的类ID。该标志的默认值设置为 None。
  14. 运行代码:

# Run object tracking
python object_tracking.py --video ./data/test.mp4 --output ./output/output.mp4

# Run object tracking on webcam (set video flag to 0)
python object_tracking.py --video 0 --output ./output/webcam.mp4

# Run person tracking (set class_id flag to 0 for person)
python object_tracking.py --video ./data/test.mp4 --output ./output/output.mp4 --class_id 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1553561.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SlerfTools:简化操作,激发Solana生态创新潜能

在区块链世界的快速演变中,Solana生态系统以其独特的高性能吸引了全球的目光。然而,随着生态系统的蓬勃发展,用户和开发者面临的挑战也日渐增多。正是在这样的背景下,一个名为SlerfTools的新星项目应运而生,它承诺将为Solana带来一场革命性的变革。 项目的诞生 SlerfTools并非…

原创度检测工具分享,文章质量检测方便又简单

文章检测有利于我们了解文章内容的质量高低,而在以往我们检测文章只能依靠手动去检测,这是相当消耗工作时间的,但是在原创度检测工具出来之后,很多人开始检测文章质量就改用原创度检测工具了,因为使用原创度检测工具是…

YOLOv5-小知识记录(四)

0. 写在前面 本篇介绍SPP模块、FPN模块模块,主要也是对YOLOv5的内容的补充: Yolo系列算法-理论部分-YOLOv4-CSDN博客 Yolo系列算法-理论部分-YOLOv5-CSDN博客 上一篇: YOLOv5-小知识记录(三)-CSDN博客 1. PANet(Path A…

49 el-input 的 模型 视图 双向同步

前言 这里来看一下 el-input 这边的 数据 和 视图的双向绑定 最开始 我以为 这部分的处理应该是 vue 这边实现的, 但是跟踪调试了一下 发现这部分的处理是业务这边 自己实现的 这部分 还是有一些 值得记录的东西, 从这里 要去理解的而是 vue 这边从宏观的框架上面来说 帮我们…

mac系统使用经验

mac安装brew brew是macos下的一个包管理工具,类似与centos的yum,ubuntu的apt-get等。 自动脚本(全部国内地址)(在Mac os终端中复制粘贴回车下面这句话) /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/H…

基于CNN-RNN的动态手势识别系统实现与解析

一、环境配置 为了成功实现基于CNN-RNN的动态手势识别系统,你需要确保你的开发环境已经安装了以下必要的库和工具: Python:推荐使用Python 3.x版本,作为主要的编程语言。TensorFlow:深度学习框架,用于构建…

开放平台 - 互动玩法演进之路

本期作者 1. 背景 随着直播业务和用户规模日益壮大,如何丰富直播间内容、增强直播间内用户互动效果,提升营收数据变得更加关键。为此,直播互动玩法应运而生。通过弹幕、礼物、点赞、大航海等方式,用户可以参与主播的直播内容。B站…

书生·浦语大模型实战营(第二期):书生·浦语大模型全链路开源体系

非常开心能够参加到第二期的书生浦语大模型实战营,经过第一期的学习,初步了解了如何使用xtuner对模型进行微调,以及如何部署。遗憾的是没有更加深入学习并实现一个项目,此次学习过程中希望可以更进一步。 大模型称为发展通用人工…

安卓国内ip代理app,畅游网络

随着移动互联网的普及和快速发展,安卓手机已经成为我们日常生活和工作中不可或缺的一部分。然而,由于地理位置、网络限制或其他因素,我们有时需要改变或隐藏自己的IP地址。这时,安卓国内IP代理App便成为了一个重要的工具。虎观代理…

C++——C++11线程库

目录 一,线程库简介 二,线程库简单使用 2.1 传函数指针 ​编辑 2.2 传lamdba表达式 2.3 简单综合运用 2.4 线程函数参数 三,线程安全问题 3.1 为什么会有这个问题? 3.2 锁 3.2.1 互斥锁 3.2.2 递归锁 3.3 原子操作 3…

Java代码混淆技术的进阶应用与优化策略探讨

摘要 本文探讨了代码混淆在保护Java代码安全性和知识产权方面的重要意义。通过混淆技术,可以有效防止代码被反编译、逆向工程或恶意篡改,提高代码的安全性。常见的Java代码混淆工具如IPAGuard、Allatori、DashO、Zelix KlassMaster和yGuard等&#xff0…

ERROR: No matching distribution found for tb-nightly

问题描述 安装tb-lightly失败:ERROR: No matching distribution found for tb-nightly 解决方案 因为我的镜像源默认是清华的,但是pip源中没有对应的“tb-nightly”依赖包。 如果不知道的,也可以查看一下pip的配置: python -m …

12.Java语言的发展

JAVA语言的诞生是具有一定戏剧性的,可以说是命运多舛,差点凉凉,差点GG,差点嗝屁。 在1990年的时候Sun(Stanford University Network:斯坦福大学网络)公司成立了一个由 James Gosling 领导的Gree…

2024软件设计师备考讲义——(3)

程序设计语言 一、程序语言基础 1.基本概念 低级语言:机器语言、汇编语言高级语言: Fortran 科学计算,执行效率高Pascal 为教学开发,表达能力强Prolog 逻辑性程序设计语言C语言 指针操作能力强,可以开发系统级软件&a…

【计算机网络】第 9 问:四种信道划分介质访问控制?

目录 正文什么是信道划分介质访问控制?什么是多路复用技术?四种信道划分介质访问控制1. 频分多路复用 FDM2. 时分多路复用 TDM3. 波分多路复用 WDM4. 码分多路复用 CDM 正文 什么是信道划分介质访问控制? 信道划分介质访问控制(…

Go语言学习Day6:数组与切片

名人说:莫愁千里路,自有到来风。 ——钱珝 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1. 数组① 什么是数组② 数组的声明③ 初始化数组的几种方式④ 遍历数组元素⑤ 数组为值类型⑥ 数…

深入理解Vue 3.0中Async/Await 语法

引言 在 JavaScript 中,异步操作一直是一个挑战,因为它们通常涉及回调函数的嵌套和复杂的 Promise 链式调用。为了解决这些问题,ES8 引入了 Async/Await 语法,它提供了一种更简洁、易读的方式来处理异步操作。 Async/Await 主要…

使用mysql官网软件包安装mysql

确定你的操作系统,我的是Centos myqsl 所有安装包的地址:https://repo.mysql.com/yum/ 如果你是使用rpm安装你可以到对应的版本里面找到对应的包。 mysql 发行包的地址:http://repo.mysql.com/ 在这里你可以找到对应的发布包安装。 这里使用y…

【3DsMax+Pt】练习案例

目录 一、在3DsMax中展UV 二、在Substance 3D Painter中绘制贴图 一、在3DsMax中展UV 1. 首先创建如下模型 2. 选中如下三条边线作为接缝 重置剥 发现如下部分还没有展开 再选一条边作为接缝 再次拨开 拨开后的UV如下 二、在Substance 3D Painter中绘制贴图 1. 新建项目&am…

MIPI RFFE接口

1. 概况 MIPI RFFE是一种专门针对当前及未来无线系统在射频(RF)前端控制界面规范。随着手机射频系统日趋复杂,业界需要一个单一控制界面解决方案。MIPI联盟的RF前端控制界面(RFFE)规范通过提供一个可连接到收发器或无线电的总线界面解决了这一难题,可用于…