【TensorRT】Yolov5-DeepSORT 目标跟踪

Yolov5-DeepSORT-TensorRT

本项目是 Yolo-DeepSORT 的 C++ 实现,使用 TensorRT 进行推理

🚀🚀🚀 开源地址:Yolov5_DeepSORT_TensorRT,求 star⭐ ~

引言

  • 实时性:推理速度可达25-30FPS
  • 🔢 INT8量化:yolo使用INT8量化,量化模型可使用本文提供的 onnx 文件(见正文),或参考我的量化项目 yolov5_quant
  • 🐳 快速搭建开发环境:提供了 dockerfile,使用方式见 docker 文件夹
  • 📥 无需手动转换模型:下载并使用本文提供的 onnx 文件(见正文),在程序运行时会自动解析 onnx 并序列化出 engine 文件(*.trtmodel)到 workspace 目录下

我的另一个 PyTorch 版本的实现,含撞线检测,可对行人进行计数,开源地址:Yolov5_Deepsort_Person_Count

一、快速使用

💻 环境配置

推荐参考项目内的 README 使用Docker容器,或参考下方自行配置:

  • python: 3.8
  • cuda: 11.2
  • cudnn: 8.2.2.26
  • tensorRT: 8.0.3.4
  • protobuf: 3.11.4

📥 下载视频&模型

下载本项目并进入目录:

git clone https://github.com/Tongkaio/Yolov5_DeepSORT_TensorRT.git
cd Yolov5_DeepSORT_TensorRT

创建工作目录:

mkdir workspace

下载文件到 workspace 目录下:

文件链接
*.onnx, test.mp4下载 (提取码: zxao)

🏃‍ 运行

修改 MakeFile 中的相关头文件和库文件路径(若使用本项目提供的 docker 则不需要),然后执行:

make run

项目运行时将显示推理结果,按 ESC 退出。

目前在 GeForce RTX 2060 上,推理 test.mp4 的速度约为 40 ms/帧,满足实时性要求。

二、文件说明

  • Infer、Yolo 和 DeepSORT 使用接口模式和 RAII 进行封装:

    • infer.hyolo.hdeepsort.h 仅暴露 create_*推理接口
    • 使用 create_* 创建对象实例,将自动解析 onnx 文件,生成 engine 并加载
  • infer.cpp: 分四个线程,两两之间为生产者-消费者关系:

在这里插入图片描述

三、项目参考

本项目构建过程中参考了以下优秀的开源项目,在此对这些项目的作者表示感谢:

  • https://github.com/GesilaA/deepsort_tensorrt
  • https://github.com/onnx/onnx-tensorrt/tree/release/8.0
  • https://github.com/shouxieai/tensorRT_Pro
  • 24
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值