目标追踪篇---Yolov5_DeepSort_Pytorch复现

本文详细介绍了如何克隆并配置Yolov5与DeepSort Pytorch项目,解决CUDA问题,演示了如何修改yolov5/detect.py的权重和源文件,并展示了跟踪和检测过程。通过实例学习,读者可以快速上手这两个流行的深度学习工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Yolov5_DeepSort_Pytorch 官网链接

Yolov5_DeepSort_Pytorch

克隆代码

  1. 在使用目标追踪的代码前
git clone --recurse-submodules https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch.git
  1. 确保满足所有要求:Python 3.8或更高版本,所有要求.txt依赖项,包括torch> = 1.7。要安装,请运行:
pip install -r requirements.txt

注:以下是本人的步骤(仅供参考)

  • (1)新建了一个conda的虚拟环境
conda create -n tracking python=3.8
  • (2)激活该环境
conda activate tracking
  • (3) 安装相应的环境依赖
pip install -r requirements.txt

小试牛刀

可提前下载
deep_sort_pytorch/deep_sort/deep/checkpoint/ckpt.t7
yolov5/weights/yolov5s.pt

下载链接 :
链接: https://pan.baidu.com/s/12IKhpJOKAT7qgOlc3IxrOg 提取码: q7k6

运行以下命令:

python track.py --source yolov5/mp4/streetscope.mp4 --save-vid --save-vid --visualize --yolo_weights yolov5/weights/yolov5s.pt

发现报错,内容为
RuntimeError: CUDA error: no kernel image is available for execution on the device
终端测试

python
import torch
torch.cuda.is_available()

结果为 True

       以上只是检测CUDA是否安装正确并能被Pytorch检测到,并没有说明是否能正常使用,要想看Pytorch能不能调用cuda加速,还需要简单的测试一下:
所以继续验证

a = torch.Tensor([1,2])
a = a.cuda()
a

结果是报错
RuntimeError: CUDA error: no kernel image is available for execution on the device

于是我就参考pytorch官网重新下载torchtorchvision

torch官网
根据 nvidia-smi 查询显卡的版本

在这里插入图片描述
在这里插入图片描述

pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html

安装完成后
继续测试

a = torch.Tensor([1,2])
a = a.cuda()
a

在这里插入图片描述
即成功安装好环境配置

运行代码

1. track.py

python track.py --source yolov5/mp4/streetscope.mp4 --save-vid --save-vid --visualize --yolo_weights yolov5/weights/yolov5s.pt

运行过程

在这里插入图片描述
结果保存在 inference/output 里面

视频效果图如下

在这里插入图片描述

2. yolov5/detect.py

在这里插入图片描述

要修改 --weights 和 --source 的内容

--weights yolov5n.pt 
          yolov5s.pt
          yolov5m.pt
          yolov5l.pt 
          yolov5x.pt 

--source data/images
         img.jpg  # image
         vid.mp4  # video
         path/  # directory
         path/*.jpg  # glob
         'https://youtu.be/Zgi9g1ksQHc'  # YouTube
         'rtsp://example.com/media.mp4'  # RTSP, RTMP, HTTP 

举例

在这里插入图片描述直接修改代码里面的参数,可直接右键运行,不用在终端运行

也可以用终端运行,命令行输入如下:

注: 是在主项目目录下运行
/app/yyq/slifeProject/object_tracking/Yolov5_DeepSort_Pytorch

python yolov5/detect.py --weights yolov5/weights/yolov5s.pt --source yolov5/data/images

运行过程如下

在这里插入图片描述
结果保存在 yolov5/runs/detect/exp 里面
在这里插入图片描述

<think>好的,我现在需要处理用户关于YOLOv5目标检测算法实现教程的查询。首先,我得确认用户的具体需求,他们可能想要从基础开始了解如何实现YOLOv5,包括环境配置、模型训练、推理部署等步骤。接下来,我需要回忆YOLOv5的关键点,确保提供的信息准确且符合最新实践。 首先,用户提到了引用[1],里面涉及YOLOv5的不同模型变体。我应该在回答中解释这些变体的区别,比如n、s、m、l、x对应的模型大小和性能差异,帮助用户选择合适的模型。同时,需要确保提到的技术细节,如损失函数、数据增强方法,都是正确的,并正确引用来源。 然后,用户请求实现教程,所以步骤需要详细但不过于复杂。环境配置部分要列出必要的依赖,比如PyTorch、torchvision等,并提醒用户安装官方仓库的requirements.txt。数据准备部分要强调数据集格式,尤其是YOLO格式的要求,包括目录结构和标注文件的格式,可能用户需要转换自己的数据集,这里可能需要指导或提供转换脚本的建议。 模型训练部分,需要给出命令行示例,说明关键参数如--data、--cfg、--weights的作用。同时,要提到超参数调整和训练监控,比如使用TensorBoard,这样用户知道如何跟踪训练过程。 模型推理部分,提供加载模型并进行预测的代码示例,解释置信度阈值和IOU阈值的调整,以及如何可视化结果。部署方面,要介绍导出到不同格式的方法,比如ONNX,以及在不同平台上的部署工具,这有助于用户将模型应用到实际项目中。 在注意事项中,数据增强和预训练模型的重要性需要强调,可能用户数据量小的话,使用预训练模型可以提升效果。硬件要求方面,明确GPU的需求,如果用户只有CPU,可能需要提示训练速度的问题。 最后,生成的相关问题需要覆盖用户可能进一步感兴趣的方面,比如模型结构、评估指标、部署技巧和与其他版本的区别,这样可以帮助用户深入学习和解决问题。 需要检查所有技术术语的正确性,比如YOLOv5的损失函数组成,数据增强方法是否正确,确保代码示例没有错误,并且命令和路径正确。同时,引用标识要正确对应到用户提供的参考内容,避免混淆。整个回答结构要清晰,分步骤讲解,方便用户跟随操作。最后,语言要简洁明了,避免使用过于专业的术语,或者必要时进行解释,确保用户容易理解。</think>### YOLOv5目标检测算法实现教程 #### 一、YOLOv5核心特性 1. **多版本模型**:提供YOLOv5n(最小)、YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x(最大)五个版本,模型复杂度与精度呈正相关[^1] 2. **自适应锚框计算**:通过`autoanchor`算法自动计算数据集最佳锚框参数 3. **复合数据增强**:集成Mosaic增强、MixUp、随机仿射变换等策略 $$ \text{损失函数} = w_{obj} \cdot L_{obj} + w_{cls} \cdot L_{cls} + w_{box} \cdot L_{box} $$ 其中$L_{box}$采用CIoU损失函数 #### 二、实现步骤 **1. 环境配置** ```bash git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt # 安装依赖 ``` **2. 数据准备** - 数据集结构示例: ``` datasets/ train/ images/ # 训练图片 labels/ # YOLO格式标注文件 val/ images/ labels/ ``` - 标注文件格式:`<class_id> <x_center> <y_center> <width> <height>`(归一化坐标) **3. 模型训练** ```bash python train.py --data coco.yaml --cfg yolov5s.yaml --weights '' --batch-size 16 --epochs 100 ``` - 关键参数说明: - `--img-size`: 输入图像尺寸(默认640) - `--hyp`: 超参数配置文件路径 - `--device`: 指定GPU(如`0,1`) **4. 模型推理** ```python import torch model = torch.hub.load('ultralytics/yolov5', 'yolov5s') results = model('test.jpg') results.print() # 打印检测结果 results.show() # 显示检测效果 ``` **5. 模型导出** ```bash python export.py --weights yolov5s.pt --include onnx # 导出ONNX格式 ``` #### 三、注意事项 1. **数据增强策略**:建议开启Mosaic增强(训练初期)和关闭(最后10个epoch) 2. **预训练模型**:官方提供COCO预训练权重,可通过`--weights yolov5s.pt`加载 3. **硬件要求**:建议使用GPU加速训练(至少8GB显存) #### 四、性能优化建议 1. **量化压缩**:使用FP16精度训练可减少显存占用 2. **剪枝优化**:通过通道剪枝减少模型参数量 3. **TensorRT加速**:转换模型为TensorRT引擎提升推理速度
评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心惠天意

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值