首页 > 其他分享 >yolov8目标跟踪与行人车辆计数+YOLOv8 Object Detection with DeepSORT Tracking(ID + Trails)

yolov8目标跟踪与行人车辆计数+YOLOv8 Object Detection with DeepSORT Tracking(ID + Trails)

时间:2024-11-06 19:45:22浏览次数:3  
标签:DeepSORT Tracking Trails py 目标 跟踪 检测 YOLOv8

YOLOv8目标检测与DeepSORT跟踪技术简介

在计算机视觉领域,目标检测和跟踪是两个至关重要的任务。目标检测旨在识别图像或视频中的特定对象,并确定它们的位置;而目标跟踪则是在连续的帧之间保持对这些对象的身份和位置的一致性跟踪。本文将详细介绍YOLOv8作为先进的目标检测算法,以及DeepSORT(Deep Learning Simple Online and Realtime Tracking)作为有效的多目标跟踪方法,二者结合使用如何实现高精度的目标检测与跟踪,特别强调了ID分配及轨迹绘制的功能。

一、YOLOv8: 目标检测的新里程碑

YOLO (You Only Look Once) 是一种实时物体检测系统,自首次提出以来便以其速度和准确性著称。随着版本迭代至YOLOv8,该系列模型不仅继承了前代的优势,还在多个方面进行了优化升级。YOLOv8采用了更高效的网络结构设计、改进的数据增强技术和训练策略,从而在保证快速推理的同时显著提升了检测性能。它支持多种尺寸的输入图片,适用于不同场景下的应用需求。此外,YOLOv8还提供了更加友好的用户界面和开发工具,使得研究人员和开发者能够更容易地进行模型定制与部署。

二、DeepSORT: 在线多目标跟踪器

DeepSORT是一种基于深度学习的在线多目标跟踪算法,它通过结合外观信息与运动预测来提高跟踪效果。与传统的SORT算法相比,DeepSORT引入了一个深度神经网络用于提取目标特征向量,这有助于解决由于遮挡等原因导致的目标外观变化问题。其核心思想包括:

  • 卡尔曼滤波器:用于估计每个目标的状态(如位置、速度等),并预测下一时刻的位置。
  • 匈牙利算法:用来解决数据关联问题,即决定哪些检测结果属于哪个已知目标。
  • 马氏距离:衡量新检测到的目标与现有跟踪序列之间的相似度。
  • 级联匹配策略:首先尝试根据外观特征匹配,如果失败再考虑仅基于空间位置的信息。
    在这里插入图片描述
三、YOLOv8与DeepSORT的融合应用

当YOLOv8与DeepSORT相结合时,可以构建一个强大的视频分析系统,能够同时完成高质量的对象检测与长时间稳定跟踪。具体流程如下:

  1. 初始化阶段:加载预训练好的YOLOv8模型,设定好相关参数。
  2. 帧处理循环
    • 使用YOLOv8对每一帧图像执行目标检测,获取边界框坐标及其类别标签。
    • 将检测结果送入DeepSORT模块,进行目标匹配与更新操作。
    • 对于新出现的目标,分配唯一ID,并开始记录其轨迹。
    • 更新所有跟踪目标的状态信息,包括最新位置、速度等。
  3. 输出结果:可视化显示带有ID标注的目标框及历史轨迹。

前往克隆文件夹并安装依赖

在这里插入图片描述

首先,你需要进入你已经从GitHub或其他源代码托管服务克隆下来的YOLOv8-DeepSORT-Object-Tracking项目文件夹。打开终端或命令行界面,然后输入以下命令以导航到项目目录:

cd YOLOv8

接下来,安装项目所需的依赖项。为了安装开发环境下的所有依赖,运行:

pip install -e '.[dev]'

这条命令会根据项目的setup.py文件安装所有必需的包,包括开发时需要用到的额外库。

设置工作目录

然后切换到YOLOv8的检测脚本所在的目录:

cd ultralytics/yolo/v8/detect

下载DeepSORT文件

访问以下链接下载DeepSORT相关的文件:

  • [DeepSORT 文件夹](https://drive.google.com/drive/folders/1kna8eWGrSfza

从Google Drive下载完DeepSORT的ZIP压缩文件后,将其解压并将deep_sort_pytorch文件夹放置在yolo/v8/detect目录下。
在这里插入图片描述

下载示例视频

接着,下载用于测试的示例视频。使用gdown工具从Google Drive下载视频文件。如果你还没有安装gdown,可以通过pip安装它:

pip install gdown

之后,下载视频文件:

gdown "https://drive.google.com/uc?id=1rjBn8Fl1E_9d0EMVtL24S9aNQOJAveR5&confirm=t"

这将会把视频文件保存到你的当前工作目录中。

运行YOLOv8目标检测+跟踪代码

现在你可以运行带有DeepSORT跟踪功能的YOLOv8目标检测程序了。使用以下命令来启动程序,并指定要使用的模型(这里是yolov8l.pt)和视频源(test3.mp4)。同时设置show=True来实时查看结果:

python predict.py model=yolov8l.pt source="test3.mp4" show=True

下载更新后的predict.py文件以支持车辆计数

若要启用车辆计数功能,请从以下链接下载更新版的predict.py文件,并替换原有的文件:

确保将新的predict.py文件放在ultralytics/yolo/v8/detect目录内。

运行YOLOv8目标检测+跟踪+车辆计数代码

最后,再次运行修改后的predict.py脚本来执行目标检测、跟踪以及车辆计数:

python predict.py model=yolov8l.pt source="test3.mp4" show=True

结果展示

运行上述命令后,你将能够在屏幕上看到车辆检测、跟踪的结果,同时程序还会统计并显示视频中出现的车辆总数。

请注意,根据你的具体需求和环境配置,可能需要调整某些参数或路径设置。确保所有的路径都是正确的,并且所有必要的文件都已经被正确地放置到了指定的位置。
这种组合方案特别适用于需要长时间监控同一场景的应用场合,比如智能安防、自动驾驶等领域。通过为每个检测到的目标分配唯一的标识符,并持续追踪其移动路径,可以有效提升系统的智能化水平和服务质量。

四、ID分配与轨迹绘制的重要性
  • ID分配:确保即使目标离开视野后再次进入也能被正确识别,这对于维护整个跟踪过程的一致性和准确性至关重要。
  • 轨迹绘制:不仅可以帮助理解目标的行为模式,还能辅助进行行为分析、异常检测等工作。例如,在交通管理中,通过对车辆行驶路线的分析,可以发现潜在的安全隐患点。
五、总结

综上所述,YOLOv8与DeepSORT的联合使用提供了一种高效且可靠的方法来实现复杂环境下的目标检测与跟踪任务。它们各自的优势互补,共同构成了一个强大且灵活的视觉分析平台。随着人工智能技术的发展,我们期待看到更多创新性的应用场景诞生,进一步推动相关领域的进步与发展。

标签:DeepSORT,Tracking,Trails,py,目标,跟踪,检测,YOLOv8
From: https://blog.csdn.net/QQ_1309399183/article/details/143578085

相关文章

  • TRLO: An Efficient LiDAR Odometry with 3D Dynamic Object Tracking and Removal
    arxiv|中科院联合国科大开源TRLO:一种结合3D动态物体跟踪与移除的高效LiDAR里程计【TRLO:AnEfficientLiDAROdometrywith3DDynamicObjectTrackingandRemoval】文章链接:[2410.13240]TRLO:AnEfficientLiDAROdometrywit...项目主页:GitHub-Yaepiii/TRLOTRLO:A......
  • Deepsort算法详解
    多目标跟踪的主要步骤:获取原视频帧利用目标检测器对视频帧中的目标进行检测将检测到的目标的框中的特征提取出来,该特征包括表观特征(方便特征对比避免IDswitch)和运动特征(运动特征方便卡尔曼滤波对其进行预测)表观特征与运动特征:表观特征:描述目标的外观信息,通常包括颜色、纹......
  • Production Tracking是什么 ?
    【大家好,我是唐Sun,唐Sun的唐,唐Sun的Sun。一站式数智工厂解决方案服务商】ProductionTracking,即生产跟踪,是对生产过程进行全面、实时监控和记录的一种管理手段。它涵盖了从原材料采购、生产计划制定、生产工序执行,到产品最终完成的整个生产流程。通过各种技术手段,如传感器、......
  • [Paper Reading] Decoding Surface Touch Typing from Hand-Tracking
    目录DecodingSurfaceTouchTypingfromHand-TrackingTL;DRMethodHTSkeletonSequence->TextTEXTDECODINGDATACOLLECTIONQ&AExperiment物理键盘与虚拟键盘对比对比不同MotionModel效果可视化总结与发散相关链接资料查询DecodingSurfaceTouchTypingfromHand-Tracking......
  • DeepSORT算法实现车辆和行人跟踪计数和是否道路违规检测(代码+教程)
    DeepSORT算法实现车辆和行人跟踪计数和是否道路违规检测(代码+教程)特征提取此处面对的场景是是交通摄像头下的马路场景,数据格式为视频流或者视频,所以我们要提取视频的第一帧作为背景来进行车道线的标定,运行extra.py文件即可提取第一帧背景图片。✍......
  • 程序埋点(Event Tracking)
    程序埋点(EventTracking)是指在软件程序中嵌入记录用户行为或系统运行状态的代码,以便收集数据用于分析和监控。程序埋点通常用于分析用户行为、性能监控、问题排查、产品优化等目的。何时使用程序埋点:用户行为分析:了解用户在应用中的行为,例如点击量、页面访问次数等。性能监控:......
  • 洛谷 P1560 [USACO5.2]蜗牛的旅行Snail Trails(c++)
    describe蜗牛在制定今天的旅游计划,有n个景点可选,它已经把这些景点按照顺路游览的顺序排成一排了,每个地方有相应的景观,这里用一个整数表示。蜗牛希望选取连续的一段景点,还要选出来的每一个景点的景观都不同,问它最多能选出多少个景点进行旅游。#include<iostream>#inc......
  • Local All-Pair Correspondence for Point Tracking 中英对照
    论文来自:https://ku-cvlab.github.io/locotrack/LocalAll-PairCorrespondenceforPointTracking局部全对应对点跟踪SeokjuCho\({}^{1}\),JiahuiHuang\({}^{2}\),JisuNam\({}^{1}\),HonggyuAn\({}^{1}\),Seungryong\({\mathrm{{Kim}}}^{1,\dagger}\),......
  • day23-back tracking-part02-7.25
    tasksfortoday:1.39.组合总和2.40.组合总和II3.131.分割回文串----------------------------------------------------------1.39.组合总和INthispractice,thekeychangeistherequirementthattheelementcanberepetativelyused,whichcanbeachievedby......
  • day22-back tracking-part01-7.24
    tasksfortoday:1.回溯理论基础2.77.组合3.216.组合总和III4.17.电话号码的字母组合-------------------------------------------------------------------1.回溯理论基础-什么是回溯:在二叉树系列中,我们已经不止一次,提到了回溯,回溯是递归的副产品,只要有递归就......